初学PHP的XPath文本显示(Beginner PHP XPath Text Display)

2019-10-20 13:50发布

目标:使用XPath检查/ Firefox和PHP显示在网页上选择文本。

什么是为了此页面上只显示名称(文本)所需的PHP代码XPATH? http://steamcommunity.com/profiles/76561197967713768

使用此代码:

<?php
$html = new DOMDocument();
@$html->loadHtmlFile('http://steamcommunity.com/profiles/76561197967713768');
$xpath = new DOMXPath( $html );
$nodelist = $xpath->query( "//div[@class='persona_name']" );
foreach ($nodelist as $n){
echo $n->nodeValue."\n";
}
?>

我得到的“mopar410此用户也起到为:”输出,我想只有它显示“mopar410”。 我想移除“此用户也发挥为:”部分。

一些信息不能被通过XML虽然访问,并且当我代替上述与此从的xpath检查在Firefox(示例):

<?php
$html = new DOMDocument();
@$html->loadHtmlFile('http://steamcommunity.com/profiles/76561197967713768');
$xpath = new DOMXPath( $html );
$nodelist = $xpath->query( "/x:html/x:body/x:div[3]/x:div[1]/x:div/x:div/x:div/x:div[3]/x:div[1]']" );
foreach ($nodelist as $n){
echo $n->nodeValue."\n";
}
?>

它不工作,我得到一个错误。 什么是右键点击和观看的正确方法XPATH,那么XPath的转移到PHP代码?

Warning: DOMXPath::query(): Undefined namespace prefix in blahblahblah on line 85

Warning: DOMXPath::query(): Invalid expression in blahblahblah on line 85

Warning: Invalid argument supplied for foreach() in blahblahblah on line 86

我是新来的。 请帮忙。

Answer 1:

这是因为<div class="persona_name">包含其他节点和文字,除了你想要的文字。 您可以尝试使用XPath表达式用于获取这是唯一的直接子非空文本节点<div class="persona_name">

//div[@class='persona_name']/text()[normalize-space(.)]


文章来源: Beginner PHP XPath Text Display
标签: php xpath