使用xpath表达式提取xml内容

时间:2017-09-07 13:32:02

标签: xpath xpath-2.0

我有以下要求:

<request>
   <sender>A</sender>
   <id>01</id>
   <parameters>
       <parameter value="1" />
       <parameter value="2" />
   </parameters>
</request>

我想发送回复:

<response>
   <id>01</id>
   <parameters>
       <parameter value="1" />
       <parameter value="2" />
   </parameters>
   <result>3</result>
</response>

所以大多数响应都是一样的:id,参数。有没有办法用xpath表达式获取xml全文的子集? 我想得到:

   <id>01</id>
   <parameters>
       <parameter value="1" />
       <parameter value="2" />
   </parameters>

可选问题:是否可以只获得一个字符串? 基本上我希望我的XPath评估结果是:

   "<id>01</id>
   <parameters>
       <parameter value="1" />
       <parameter value="2" />
   </parameters>"

谢谢!

1 个答案:

答案 0 :(得分:1)

XPath无法创建新节点或修改现有节点:它只能选择输入中已存在的节点。你需要XQuery或XSLT。它很简单(XSLT 2.0):

<xsl:template match="request">
  <response>
    <xsl:copy-of select="id, parameters"/>
    <result>3</result>
  </response>
</xsl:template>