DOM+XPath提取规则注记!

下面是使用DOM+Xpath提取html中页面时经常使用的Xpath规则的一些示例:

XPath相关的规则

没有属性 //B[not(@*)]
没有类属性 //B[not(@class)]
要求链接有title属性 //a[@title]
选取最后一个节点 //p[last()]/a
要求有“title”值的class属性和没有class属性的节点集合表示如下:
//ul[@class='ulTxt']/li[@class='title' or not(@class)]/a
//div[@class='yunc mb10' or @class='yuer mb10']
//script[@type='text/javascript' and not(@src)]
没有指定属性值的节点集
//div[@class!='FocusTitle_12px']
获取第一个列表链接://ul[@class='authorbox']/li[1]
如果标签内还包含其它的子标签,现在我们不想要格式信息,只想要其内嵌套的内容,直接用$href->nodeValue,获取对应节点名称使用$href->nodeName

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NestJS 是一个用于构建高效、可扩展的服务器端应用程序的框架,它基于 TypeScript 编写,并且使用了面向对象的编程(OOP)和函数式编程(FP)的最佳实践。XPath 是一种用于在 XML 文档中定位节点的语言。在 NestJS 中使用 XPath 可以方便地对 XML 数据进行解析和处理。 在 NestJS 中使用 XPath,你可以按照以下步骤进行操作: 1. 首先,安装相关的依赖包。你可以使用 npm 或者 yarn 进行安装,例如: ``` npm install xpath ``` 2. 在你的 NestJS 项目中引入 xpath 模块: ```typescript import * as xpath from 'xpath'; ``` 3. 使用 xpath 模块的 `select` 方法来选择符合条件的节点。例如,假设你有一个 XML 文档如下: ```xml <bookstore> <book category="cooking"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="children"> <title lang="en">Harry Potter</title> <author>J.K. Rowling</author> <year>2005</year> <price>29.99</price> </book> </bookstore> ``` 你可以使用以下代码来选择所有书籍的标题: ```typescript const xml = // your XML document as a string const doc = new DOMParser().parseFromString(xml, 'application/xml'); const select = xpath.useNamespaces({ 'ns': 'http://www.w3.org/1999/xhtml' }); const nodes = select('//ns:book/ns:title', doc); for (const node of nodes) { console.log(node.textContent); } ``` 这样就可以打印出所有书籍的标题。 希望以上信息对你有所帮助!如果你有任何其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值