密钥具有动态部分的键值对的XPath?

时间:2016-09-27 18:42:21

标签: xml xpath

如何获取

的值
  1. COOKIE1
  2. COOKIE2
  3. cookie3_www.abc.com(只有cookie3名称是常量,www.abc.com是动态的,无论它在请求中的域的查询参数中是什么)
  4. 对于以下XML:

    <Map>
       <mapData>
          <entry>
             <key>cookie1</key>
             <value>656fdhh</value>
          </entry>
          <entry>
             <key>status</key>
             <value>True</value>
          </entry>
          <entry>
             <key>cookie3_www.abc.com</key>
             <value>gsdfg464</value>
          </entry>
          <entry>
             <key>cookie2</key>
             <value>dfdfssdf</value>
          </entry>
       </mapData>
    </Map>
    

    请让我知道如何编写XPath来获取这3个字段值。

    更新

    我写了这个来获取cookie1cookie2的值,如下所示。

    <xsl:variable name="cookie"><xsl:value-of select="$result/Map/mapData/entry[key and key='cookie1']/value"/></xsl:variable>
    <xsl:variable name="cookie1"><xsl:value-of select="$result/*/*/entry[key and key='cookie2']/value"/></xsl:variable>
    

    此处result是存储整个输出XML的服务调用输出的变量。

    我无法找到获取cookie3_www.abc.com值的方法,因为此值是动态的,只有cookie3部分保持不变 - 其他部分是动态的。

    请建议如何获得此值。

1 个答案:

答案 0 :(得分:0)

这个XPath,

/Map/mapData/entry[starts-with(key,'cookie3')]/value

将返回与以value开头的entry相同的key中的cookie3

相关问题