Php 使用cURL和simplexmlement提取数据。如何在XPATH之后获取XML元素的值?

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

从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 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");