php xpath类库,PHP Xpath:获取包含针的所有href值

不确定我正确地理解了这个问题,但是第二个XPath表达式已经做了你所描述的内容.它与A元素的文本节点不匹​​配,但href属性:

$html = <<< HTML

HTML;

$xml = simplexml_load_string($html);

$list = $xml->xpath("//a[contains(@href,'foo')]");

输出:

array(1) {

[0]=>

object(SimpleXMLElement)#2 (2) {

["@attributes"]=>

array(1) {

["href"]=>

string(31) "http://example.com/page?foo=bar"

}

[0]=>

string(11) "Description"

}

}

正如你所看到的,返回的NodeList只包含包含foo的href的A元素(我明白你正在寻找).它包含整个元素,因为XPath转换为使用包含foo的href属性获取所有A元素.然后,您将访问该属性

echo $list[0]['href'] // gives "http://example.com/page?foo=bar"

如果你只想返回自己的属性,你必须这样做

//a[contains(@href,'foo')]/@href

请注意,在SimpleXml中,这将返回一个SimpleXml元素:

array(1) {

[0]=>

object(SimpleXMLElement)#3 (1) {

["@attributes"]=>

array(1) {

["href"]=>

string(31) "http://example.com/page?foo=bar"

}

}

}

但是现在可以输出URL

echo $list[0] // gives "http://example.com/page?foo=bar"

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值