在关于类似主题的另一个question之后,我遇到了麻烦,试图让concat()函数在PHP中使用XPATH。我可以说,它是xpath 1.0(使用PHP的默认谷歌应用引擎版本)。
任何人都可以为我提供一个简单的工作示例,即在PHP的Xpath中使用concat吗?我无法在任何地方找到它,也无法让自己工作。
由于
编辑: 失败的示例代码:
function testConcat(){
$webpage = new DOMDocument();
libxml_use_internal_errors(TRUE); //disable libxml errors
$html = file_get_contents('https://stackoverflow.com/questions/49147899/xpath-in-php-using-concat-function');
$webpage->loadHTML($html);
libxml_clear_errors(); //remove errors for yucky html
$webpage_xpath = new DOMXPath($webpage);
$query = 'concat(//h1,"hello")';
$webpage_xpath = $webpage_xpath->query($query);
return $webpage_xpath->item(0)->nodeValue;
}
print testConcat();
答案 0 :(得分:1)
您正在尝试访问结果,就像表达式返回了节点集
一样$webpage_xpath->item(0)->nodeValue
但实际上它会返回一个字符串。
如果您想要节点集以外的结果,请使用DOMXPath::evaluate
而不是DOMXPath::query
。