2017-09-07 25 views
0

とXMLコンテンツの抽出:私は応答を送信したいは、私は次のリクエスト持っているXPath式

<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> 

オプション質問:それだけで1つの文字列を取得することは可能でしょうか?

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

ありがとう: は基本的に私は私のXPath評価の結果になりたいです!

+0

いいえ、XPathは間違ったツールです。 (XPath 2.0は変換のような出力を組み合わせることができるかもしれませんが、そのルートには満足できません。)XPathは主に選択用ですが、タスクには変換が必要です。代わりにこれにはXSLTを使用してください。 – kjhughes

答えて

1

XPathでは、新しいノードを作成することも、既存のノードを変更することもできません。入力に既に存在するノードのみを選択できます。 XQueryまたはXSLTが必要です。十分に簡単です(XSLT 2.0):

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