Php 使用cURL和simplexmlement提取数据。如何在XPATH之后获取XML元素的值?
从SimpleXMLElement对象提取所需数据时遇到一些问题。以下是我正在使用的代码的基本内容:Php 使用cURL和simplexmlement提取数据。如何在XPATH之后获取XML元素的值?,php,html,curl,xpath,simplexml,Php,Html,Curl,Xpath,Simplexml,从SimpleXMLElement对象提取所需数据时遇到一些问题。以下是我正在使用的代码的基本内容: curl_setopt( $ch, CURLOPT_URL, $URL ); $html = curl_exec( $ch ); $html = $tidy->parseString( $html, $tc, 'utf8' ); $tidy->cleanRepair(); $html = $tidy->body()->value; $xml = new SimpleXML
curl_setopt( $ch, CURLOPT_URL, $URL );
$html = curl_exec( $ch );
$html = $tidy->parseString( $html, $tc, 'utf8' );
$tidy->cleanRepair();
$html = $tidy->body()->value;
$xml = new SimpleXMLElement( $html );
$xml = $xml->xpath( "//ul[@id='wxoptions']/li[3]/a" ); //Your XPATH
print_r( $xml );
这会导航到所需的正确HTML元素,但会打印:
Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[href] => http://www.mylink.com
[title] => mylink
)
[0] => mylink
)
)
我需要的值是该数组中的[href],“”。如何从我包含的输出中提取?对于SimpleXMLElement和Xpath,我感到非常困惑和陌生。使用迭代,然后
或直接称为:
$href = $xml[0]->attributes("href");
我尝试使用这两种方法:
$xml=$xml->xpath(//ul[@id='wxoptions']/li[3]/a”)$href=$xml[0]->attributes(“href”)代码>但这将向$href返回一个空的SimpleXMLElement对象。只是澄清一下,您使用了哪种方法?(您在评论中提到的那个用法是错误的)或者您可以包含XML的示例?您的回答帮助我找到了一个解决方案。感谢您的帮助。请注意,您也可以直接选择attibute的:/ul[@id='wxoptions']/li[3]/a/@href
谢谢!这真的很有帮助
$href = $xml[0]->attributes("href");