喜马拉雅
火狐狸
火狐狸
  • UID55837
  • 注册日期2017-07-22
  • 最后登录2024-01-21
  • 发帖数99
  • 经验112枚
  • 威望0点
  • 贡献值90点
  • 好评度6点
  • 社区居民
  • 忠实会员
阅读:2656回复:6

[已解决] 请教一句 document.evaluate 的写法

楼主#
更多 发布于:2018-02-12 13:22
测试页面:https://www.firefox.net.cn/index.php?m=3g

用Chrome下的Xpather调试,语法明明是正确的:


但偏偏console里总是报错,愣是没看出,哪里写错了:


test = document.evaluate('//td[@class="subject"][p[@class="info"]/contains(., "楼主:fang5566")]', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

哪位前辈朋友,提点一下?谢谢^_^
喜马拉雅
火狐狸
火狐狸
  • UID55837
  • 注册日期2017-07-22
  • 最后登录2024-01-21
  • 发帖数99
  • 经验112枚
  • 威望0点
  • 贡献值90点
  • 好评度6点
  • 社区居民
  • 忠实会员
1楼#
发布于:2018-02-12 23:06
focral:哦,我看懂了,楼主要的是.subject的集合
那这样写
//td[@class="subject"]/p[@class="info"]/..
或者//p[@class="info"]]/..
回到原帖
谢谢,第一次见/..写到最后的,还可以上溯,前辈这种写法,好理解多了。感谢!
喜马拉雅
火狐狸
火狐狸
  • UID55837
  • 注册日期2017-07-22
  • 最后登录2024-01-21
  • 发帖数99
  • 经验112枚
  • 威望0点
  • 贡献值90点
  • 好评度6点
  • 社区居民
  • 忠实会员
2楼#
发布于:2018-02-13 14:32
myhead:语法错误是因为 contains 函数不能作为 node test 使用。见:
https://www.w3.org/TR/xpath/#node-tests


'//td[@class="subject"]/contains(...
回到原帖
原来还有node test的说法,什么时候用/什么时候用[],我老是分不清楚,谢谢前辈指点!
游客

返回顶部