首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >给定关键字的值的XPath?

给定关键字的值的XPath?
EN

Stack Overflow用户
提问于 2021-04-29 07:09:10
回答 4查看 77关注 0票数 2

我有一个从下面创建的XML对象:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<pdfDoc>
  <XMLOutput>
    <webservice>
      <residentLocationData>
        <addressDataMap>
          <entry>
            <key>Zip</key>
            <value>08094</value>
          </entry>
          <entry>
            <key>CountyCode</key>
            <value>015</value>
          </entry>
          <entry>
            <key>StateName</key>
            <value>New Jersey</value>
          </entry>
        </addressDataMap>
      </residentLocationData>
    </webservice>
  </XMLOutput>
<pdfDoc>

我正在尝试提取"New Jersey“的字符串值。为了获取"value“元素本身,我使用:

代码语言:javascript
运行
复制
//addressDataMap/entry/key[text() = 'StateName']/following-sibling::value

但是我还没有在网上看到任何关于如何仅使用XPath本身来获取该元素的xmlText的字符串值的内容。我可以使用我正在使用的语言(Coldfusion)中的代码来获取该字符串:

代码语言:javascript
运行
复制
<cfset theState = xmlSearch(L.xmlObj, "//addressDataMap/entry/key[text() = 'StateName']/following-sibling::value")[1].xmlText>

但我不清楚如何仅使用XPath来获取字符串"New Jersey“。

EN

回答 4

Stack Overflow用户

发布于 2021-04-29 10:31:19

这个XPath,

代码语言:javascript
运行
复制
//entry[key='StateName']/value/text()

将根据请求选择与'StateName' key关联的"New Jersey" value

票数 2
EN

Stack Overflow用户

发布于 2021-04-29 07:11:27

//addressDataMap/entry/key[text() = 'StateName']/following-sibling::value/text()

string(//addressDataMap/entry/key[text() = 'StateName']/following-sibling::value)

应该行得通。

票数 0
EN

Stack Overflow用户

发布于 2021-04-29 09:32:51

尝试使用

代码语言:javascript
运行
复制
//addressDataMap/entry[key/text()='StateName']/value/text()

它应该会给出字符串"New Jersey“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67309032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档