带符号 ( ) 的 xpath 属性抛出错误 'XPST0003: No closing ';'找到实体或角色参考'
xpath attribute with ampersand ( ) throws error 'XPST0003: No closing ';' found for entity or character reference'
我正在使用一个依赖 xpath 表达式来收集数据的解决方案。在出现带有特殊字符的数据之前,其中一个表达式工作得很好。
包含数据的 xml 字段示例:
<variable id="name" value="STICKS & STONES"/>
这是获取数据数据的xpath表达式:
contract/variable[@id \= 'info']/variable[@id \= 'client']/variable[@id \= 'name']/@value
(等号前的反斜杠是应用程序运行所必需的)。
我尝试用 & 符号替换实体表示:
replace(/contract/variable[@id \= 'info']/variable[@id \= 'client']/variable[@id \= 'name']/@value, '&', '&')
它有效,但仅修复了这种特殊情况。我想找到一种方法来处理所有出现的实体表示。
有没有办法 "unescape" 从 xpath 表达式收集的内容?
我想你可以使用 string()
函数来绕过分号问题:
string(contract/variable[@id \= 'info']/variable[@id \= 'client']/variable[@id \= 'name']/@value)
应该输出所需的 STICKS & STONES
。
我正在使用一个依赖 xpath 表达式来收集数据的解决方案。在出现带有特殊字符的数据之前,其中一个表达式工作得很好。
包含数据的 xml 字段示例:
<variable id="name" value="STICKS & STONES"/>
这是获取数据数据的xpath表达式:
contract/variable[@id \= 'info']/variable[@id \= 'client']/variable[@id \= 'name']/@value
(等号前的反斜杠是应用程序运行所必需的)。
我尝试用 & 符号替换实体表示:
replace(/contract/variable[@id \= 'info']/variable[@id \= 'client']/variable[@id \= 'name']/@value, '&', '&')
它有效,但仅修复了这种特殊情况。我想找到一种方法来处理所有出现的实体表示。
有没有办法 "unescape" 从 xpath 表达式收集的内容?
我想你可以使用 string()
函数来绕过分号问题:
string(contract/variable[@id \= 'info']/variable[@id \= 'client']/variable[@id \= 'name']/@value)
应该输出所需的 STICKS & STONES
。