<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;
我只需要提取“结果”的文本值,但它不会输出给我。你能帮帮我吗?
答案 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是实例化对象吗?