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


Loading an XML file from a string in PHP

我试图在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来获得相同的结果
有人见过这样的东西吗

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

为了以防万一,我只是试图重现你的问题,但对我来说效果很好。

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";
?>

输出:

乔,简,我知道答案是这样的,但是问题是什么呢?之后source SimpleXMLElement对象([title]=>Forty What?[from]=>Joe[to]=>Jane[body]=>我知道答案是这样的——但问题是什么问题?)xml 之后