SimpleXMLElement返回奇怪的XML结构

时间:2015-03-05 12:41:19

标签: php sql xml simplexml

我在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();

我得到这样的东西:

Bad XML Output

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

屏幕截图与输出示例不匹配。看起来您在另一个XML结构中有多个XML文档作为文本。

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

如果$values已包含XML文档,则只能echo $values。这里不需要将它加载到DOM或SimpleXMLElement中,只是为了再次序列化它。