我试图在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 之后