从PHP中的字符串加载XML文件

时间:2015-04-04 17:26:38

标签: php xml dom simplexml

我试图在PHP中使用simplexml_load_string加载DOM,但程序总是在调用的地方终止(在调用执行后没有任何内容)。我已经使用。

将xml从文件加载到字符串中
$source = file_get_contents("/path/to/file.xml");

现在,调用echo $source;会在浏览器中返回xml文件的完整输出。这是我在浏览器中获得的来源:

<xml>
<title>Title</title>
<date>4 April 2015</date>
<content> 
    //...HTML content...//
</content>
</xml>

然而,当程序调用时

$xml = simplexml_load_string($source);

程序终止,该语句之后的任何内容都不会运行。我已经通过文档搜索了几个小时,似乎找不到这样的东西。在尝试使用此方法构建DOM之前,我尝试使用具有相同结果的simplexml_load_file 有没有人见过这样的东西?

2 个答案:

答案 0 :(得分:0)

您的XML字符串不是有效的XML。您不能拥有名为“xml”的元素名称或名称以“xml”开头的元素。尝试重命名根元素,即使用<root>而不是<xml>

答案 1 :(得分:0)

万一这有帮助,我只是想重现你的问题,但它对我来说很好。

XML:

<?xml version='1.0'?> 
<xml>
 <title>Forty What?</title>
 <from>Joe</from>
 <to>Jane</to>
 <body>
  I know that's the answer -- but what's the question?
 </body>
</xml>

PHP:

<?php

$source = file_get_contents("./file2.xml");

echo $source;

echo "after source \n";

$xml = simplexml_load_string($source);

print_r($xml);

echo "after xml";

?>

输出:

  

Joe Jane我知道答案 - 但问题是什么?后   source SimpleXMLElement Object([title] =&gt;四十什么?[来自] =&gt; Joe   [to] =&gt;简[body] =&gt;我知道答案 - 但是那是什么   题? )xml之后