如何解决当前元素文本中的双大写文本的 XPath 不是子元素
这看起来很简单,但实际上很复杂。
我的 XML 如下:
<authors>
<au>
<fnm>XXY</fnm> MArio</au>
<au>
<fnm>Xxy</fnm> MArio</au>
<au>
<fnm>XXy</fnm> Mario</au>
</authors>
我的情况是
基于上面的 XML 文件,应该找到前两个作者标签 au
而不是第三个 au
我已经尝试过 XPath 代码
//au[text()][matches(.,'[A-Z][A-Z]')]
但它不起作用。
解决方法
我想你想要//au[text()[matches(.,'[A-Z]{2}')]]
。
Martin's XPath 可能是您想要的 (+1),但万一您真的
- 需要找到双大写的标签,但不能在
fnm
标签中找到
然后使用这个 XPath:
//*[not(self::fnm) and text()[matches(.,'[A-Z]{2}')]]
...编辑您的问题后,我看到一个隐藏的 <au>
标签:
- 需要找到带有双大写的
<au>
标签,但不能在fnm
标签中找到
我为你解决了这个问题。 (您必须使用 `<au>`
来逃避标记并使其可见。)所以,很明显您确实想要 Martin 发布的内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。