我有以下XML行:
<super:FirstName> Tom </super:FirstName>
我希望得到标签之间文本的价值,即我只想得到&#34; Tom&#34;。
我尝试过使用:
//*[name()='super:FirstName'][text()]
然而,这是输出包含标签的完整XML行。
有人有任何建议吗?
答案 0 :(得分:1)
将text()
移出谓词:
//*[name()='super:FirstName']/text()
或者,如果您忽略名称空间前缀:
//*[local-name()='FirstName']/text()
或者,如果您正确处理名称空间,请在XPath库中注册前缀,并使用:
//super:FirstName/text()
答案 1 :(得分:0)
冒号引入了命名空间。在大多数编程语言中,您必须先注册命名空间,然后才能在XPath中使用它。如果您想忽略它,请使用
//*[local-name()='FirstName']