使用php读取一个简单的xml

时间:2010-08-03 16:04:41

标签: php xml

<key><name>testing name</name><result>success</result></key>

我的PHP代码:

$doc = new DOMDocument();
$doc->load( 'key.xml' );
$result = $doc->getElementsByTagName( "result" );
echo $result->item(0)->nodeValue;

我只需要提取“结果”的文本值,但它不会输出给我。你能帮帮我吗?

2 个答案:

答案 0 :(得分:4)

根据您的评论,这不起作用:

$url = "http://site.com/?action=getkey"; 
$data = file_get_contents($url); 
$doc->load( $data ); 

您从远程URI获取内容并将其提供给函数以加载文件。 DOMDocument::load从文件加载,而DOMDocument::loadXML()从字符串加载。

要么

$doc->load( 'http://site.com/?action=getkey' ); 

$doc->loadXml( file_get_contents('http://site.com/?action=getkey') ); 

旁注:

您似乎已禁用error_reporting。如果您尝试使用DOMDocument::load加载XML字符串,则应该收到PHP警告。尝试$result->item(0)也应该导致PHP通知。您应始终在开发计算机上设置error_reporting(-1)以接收所有错误,通知和警告。还要确保您的PHP.ini已将display_errors and display_startup_errors设置为true。您只希望在生产机器上禁用这些。

答案 1 :(得分:1)

我认为你在这里使用常规变量作为对象。而不是

echo $ result-&gt; item(0) - &gt; nodeValue;

为什么不使用

echo $ doc-&gt; item(0) - &gt; nodeValue;

因为$ doc是实例化对象吗?