php xpath类库,PHP – DOMXpath – 获取结果

当我想用XPath打印evaluate表达式的结果时,我有错误.

$url = $xpath-> evaluate(‘// a / @ href’,$event);

echo $url;

我有这个错误:可捕获的致命错误:类DOMNodeList的对象无法转换为字符串

我的代码:

// Get the HTML Source Code

$url='http://www.parisbouge.com/events/2012/05/01/';

$source = file_get_contents($url);

// DOM document Creation

$doc = new DOMDocument;

$doc->loadHTML($source);

// DOM XPath Creation

$xpath = new DOMXPath($doc);

// Get all events

$events = $xpath->query('//li[@class="nom"]');

// Count number of events

printf('There is %d events
', $events->length);

// List all events

for($i = 0; $i < ($events->length); $i++) {

$event = $events->item($i);

$url = $xpath->evaluate('//a/@href', $event);

$nom = $xpath->evaluate('//a/text()', $event);

$lieu = $xpath->evaluate('../li[@class="lieu"]/a/text()', $event);

echo "Result : $url $nom $lieu
";

}

?>

解决方法:

尝试此操作以获取有关节点的信息.

// List all events

for($i = 0; $i < ($events->length); $i++) {

$event = $events->item($i);

$url = $xpath->evaluate('.//a/@href', $event);

$nom = $xpath->evaluate('.//a/text()', $event);

$lieu = $xpath->evaluate('../li[@class="lieu"]/a/text()', $event);

$result = '';

if ($url->length > 0) {

$result .= $url->item(0)->value;

}

if ($nom->length > 0) {

$result .= $nom->item(0)->wholeText;

}

if ($lieu->length > 0) {

$result .= $lieu->item(0)->wholeText;

}

echo $result . "
";

//echo "Result : " . $url->item(0)->value . ' | ' . $nom->item(0)->wholeText . ' | ' . $lieu->item(0)->wholeText . "
";

}

不要忘记添加检查节点是否存在等.要检查是否有任何节点,您可以检查nodeList lenght或抑制“Gordon”建议的错误.

标签:php,xpath,evaluate,domdocument,domxpath

来源: https://codeday.me/bug/20190723/1513067.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值