Cha*_*nya 13 xml xpath namespaces prefix xml-namespaces
当xml路径名称空间前缀设置时,我无法获得以下xpath表达式.
/bk:BookStore/bk:Books/bk:Book[text()='Time Machine']
XML是:
<BookStore xmlns:bk="http://www.bookstore.com/book#">
<bk:Books>
<bk:Book id="1">Time Machine></bk:Book>
</bk:Books>
</bk:BookStore>
Run Code Online (Sandbox Code Playgroud)
Ivi*_*ava 29
甚至更好(也更便携),没有不必要的前缀:
/*/*[local-name()='Books'] ... and so on
Run Code Online (Sandbox Code Playgroud)
该函数local-name
忽略任何前缀,正如评论者正确指出的那样,前缀可能会有所不同.
Dim*_*hev 16
如果没有关于宿主语言的更多信息(您尝试评估XPath表达式),则无法提供有用的建议.
通常,需要使用命名空间管理器"注册"命名空间,这也将前缀与注册的命名空间相关联.然后,使用此NamespaceManager对象作为XPath-evaluation方法的参数,可以将此方法的参数指定为包含前缀为该特定前缀的名称的XPath表达式.
解决方法:
/*/*[name()='bk:Books']/*[name()='bk:Book' and text()='Time Machine']
Run Code Online (Sandbox Code Playgroud)