2013-07-03 48 views
1
$doc = new DOMDocument(); 
$doc->loadHTML($htmlcode); 
$xpath = new DOMXpath($doc); 
$elements = $xpath->query("//*[@id='detail']/div[1]/h3/text()"); 

return var_dump($elements); 

我该如何正确检索xpath?它返回DOMXpath查询提取信息

object(DOMNodeList)#4 (1) { 
    ["length"]=> 
    int(1) 
} 

当我做一个var_dump($ doc);它包含HTML作为[“的textContent”] =>串(22304)

我使用谷歌浏览

回答

1

这是不可能的内省一个DOMNodeList使用var_dump()你可能期望复制的XPath。您必须访问列表项0并且它的节点值为:

$elements = $xpath->query("//*[@id='detail']/div[1]/h3/text()"); 
if($elements->length === 1) { 
    echo $elements->item(0)->nodeValue; 
} else { 
    ... 
} 
+0

Hi @ hel2mgl。谢谢,我将在NodeList上进一步阅读。我的网站使用字符集=“gbk”我如何主要人物,任何想法?我意识到文本不再是中文了。 – CodeGuru

+0

我建议使用'utf8'作为字符集 – hek2mgl

+0

我说得很对,我必须将gbk字符转换为utf-8才能正确显示?如果不是'utf-8',那么不确定字符是否仍然会保留 – CodeGuru