简单XML元素return怪异XML结构

SimpleXMLElement return weird XML structure

我在 SimpleXMLElement 上苦苦挣扎了很长一段时间,我不知道如何输出格式良好的 XML 文档。

通过 SQL 查询,我检索了一些 XML 格式的数据。

select S_MODELE, S_ID from stock FOR XML RAW ('Product'), ROOT ('Products'),  ELEMENTS"

在 php 中,我有一个名为 $values 的变量等于:

<products>
  <product>
    <S_MODELE>Some text</S_MODELE>
    <S_ID>1</S_ID>
  </product>
  <product>
    <S_MODELE>Some text</S_MODELE>
    <S_ID>2</S_ID>
  </product>
  <product>
    <S_MODELE>Some text</S_MODELE>
    <S_ID>3</S_ID>
  </product>
</products>

然后我尝试在浏览器中输出一个格式正确的XML文件

  header('Content-Type: text/xml');
  $xml = new SimpleXMLElement($values);
  echo $xml->asXML();

我得到这样的结果:

感谢您的宝贵时间。

截图与输出示例不符。看起来您有多个 XML 文档作为另一个 XML 结构中的文本。

请注意,如果您在浏览器中将 XML 视为 HTML,您只会看到文本内容。在这种情况下,内部 XML 文件。

如果 $values 已经包含 XML 个文档,您可以 echo $values。这里不需要加载到DOM或SimpleXMLElement中,只需再次序列化即可。