xpath获取html属性值,利用XPath高效提取Html中的数据

aa53f60add307fcfce3613874b07049a.png

XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath基于XML的树状结构,有不同类型的节点,包括元素节点,属性节点和文本节点,提供在数据结构树中找寻节点的能力。

利用好XPath,能够极高地提升在Html层叠样式中获取数据的效率。俗话说得好,工欲上其事,必先利其器,XPath就是这么一个好工具。

XPath 使用路径表达式在 XML 文档中选取节点,节点是通过沿着路径或者 step 来选取的。

常用路径表达式

046e72c9083da33b144ada44efcbe97f.png

以下代码使用php中的xpath()演示:

$html = <<

Fun

Young

Club

HTML;

//输出Fun

$result = $html -> xpath('//div[@id="aaa"]/span[@class="bbb"]');

echo $result[0][0];

//输出Young

$result = $html -> xpath('//div[@id="aaa"]/h2');

echo $result[0][0];

//输出Club

$result = $html -> xpath('//div[@id="aaa"]/p[@rel="ccc"]');

echo $result[0][0];

常用定位函数

1、contains (): //div[contains(@id, 'sun')] 表示选择id中包含有"sun"的div节点;

2、text():由于一个节点的文本值不属于属性,比如YellowSun,用text()函数来匹配节点://a[text()='YellowSun'];

3、last()://div[contains(@id, 'sun')][las()]表示选择id中包含有"sun"的div节点的最后一个节点;

4、starts-with()://div[starts-with(@id, 'sun')] 表示选择以"sun"开头的id属性的div节点;

5、not():表示否定,//input[@name='yellowsun'and not(contains(@class,'a'))] 表示匹配出name为"yellowsun"并且class的值中不包含a的input节点。 not()函数通常与返回值为布尔值的函数组合起来用,比如contains()、starts-with()等。一种特别情况请注意,当我们要匹配出span节点含有id属性的,写法如下://span[@id],但如果我们要匹配出span节点不含用id属性的,则为://span[not(@id)]。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值