当设置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>
最佳答案
如果没有关于宿主语言的更多信息(在宿主语言中尝试计算xpath表达式),就无法提供有用的建议。
通常,需要使用名称空间管理器“注册”名称空间,这也会将前缀与注册的名称空间相关联。然后,使用这个namespacemanager对象作为xpath求值方法的参数,可以指定一个xpath表达式作为该方法的参数,该表达式包含以该特定前缀为前缀的名称。
解决办法:
/*/*[name()='bk:Books']/*[name()='bk:Book' and text()='Time Machine']