如何仅使用XPath直接获取XML指定键对应值的文本?
纯XPath直接获取目标文本值的实现
你完全可以通过XPath直接拿到"New Jersey"对应的纯字符串值,不需要后续在ColdFusion中额外读取节点的xmlText属性。
- 核心实现逻辑:在你现有定位
value元素的XPath末尾,追加文本节点定位轴即可 - 调整后可直接获取文本值的XPath表达式:
//addressDataMap/entry/key[text() = 'StateName']/following-sibling::value/text()
- 对应的ColdFusion简化代码写法:
<cfset theState = xmlSearch(L.xmlObj, "//addressDataMap/entry/key[text() = 'StateName']/following-sibling::value/text()")[1]>
补充说明:原XPath仅定位到
value元素节点本身,XPath返回的结果是节点对象集合,不会直接附带节点内的文本字符串;追加/text()定位轴后,XPath会直接匹配到value节点下属的文本内容,解析结果本身就是对应的纯字符串"New Jersey",不需要再通过ColdFusion的xmlText属性二次取值。
内容的提问来源于stack exchange,提问作者Cmaso
相关产品推荐
相关产品推荐

