我有一个XPath查询正在做我想要的,即选择'surname'和'given-names'与给定谓词的联合(它实际上是或者我需要的,但联合工作正常):
/header/authors/surname[./text() and @id='1']
|
/header/authors/given-names[./text() and @id='1']
Run Code Online (Sandbox Code Playgroud)
然而,这对我来说似乎过于冗长,我觉得应该可以做一些更简洁的事情,例如:
/header/authors/(surname|given-names)[./text() and @id='1']
Run Code Online (Sandbox Code Playgroud)
...但此版本无效XPath.
任何人都可以告诉我一个更简洁的方式来编写原始的XPath表达式,它不需要两次写入完整路径吗?
谢谢
理查德
小智 26
首先,这是有效的XPath 2.0:
/header/authors/(surname|given-names)[./text() and @id='1']
Run Code Online (Sandbox Code Playgroud)
二,这个XPath 1.0:
/header/authors/*[self::surname|self::given-names][text()][@id='1']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14956 次 |
| 最近记录: |