2016-11-04 15 views
1

以下の形式の入力があります。私はMessageBodyのError要素をループし、応答メッセージを以下のように単一のテキストとしてフレーム化したいと思います。それ。ここXSLTループXML要素と単一のテキストフレーム

Input: 

<Response> 
<Header> 
</Header> 
<Messagebody> 
<Error> 
<ErrorCode>E</ErrorCode> 
<ErrorId>100000</ErrorId> 
<ErrorDescription>UserId Not Found</ErrorDescription> 
</Error> 
<Error> 
<ErrorCode>M</ErrorCode> 
<ErrorId>100001</ErrorId> 
<ErrorDescription>Source System Not Found</ErrorDescription> 
</Error> 
</Messagebody> 
</Response> 

Expected Output: 

<Response> 
<Fault> 
<Text>[E];100000;UserId Not Found,[M];100001;Source System Not Found</Text> 
</Fault> 
</Response> 
+0

正確にあなたはこれにこだわっていますか? –

+0

こんにちはマイケル、私はXSLTに新しいあなたは私がどのように私を達成することができます教えてくださいできますか? – Ravi

答えて

0

完全なソリューションある:希望、正しい結果が生成される

<Response> 
    <Header></Header> 
    <Messagebody> 
     <Error> 
      <ErrorCode>E</ErrorCode> 
      <ErrorId>100000</ErrorId> 
      <ErrorDescription>UserId Not Found</ErrorDescription> 
     </Error> 
     <Error> 
      <ErrorCode>M</ErrorCode> 
      <ErrorId>100001</ErrorId> 
      <ErrorDescription>Source System Not Found</ErrorDescription> 
     </Error> 
    </Messagebody> 
</Response> 

:この変換が提供されるXML文書に適用される場合

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="text"/> 
<xsl:strip-space elements="*"/> 

    <xsl:template match="/"> 
     <Response> 
      <Fault> 
      <Text><xsl:apply-templates/></Text> 
      </Fault> 
     </Response> 
    </xsl:template> 

    <xsl:template match="Error[position() > 1]"> 
    <xsl:text>,</xsl:text> 
    <xsl:apply-templates/> 
    </xsl:template> 

    <xsl:template match="Error/*"> 
    <xsl:value-of select="substring(';', 1, position() > 1)"/> 
    <xsl:value-of select="substring('[', 1, name()='ErrorCode')"/> 
    <xsl:value-of select="."/> 
    <xsl:value-of select="substring(']', 1, name()='ErrorCode')"/> 
    </xsl:template> 
</xsl:stylesheet> 

[E];100000;UserId Not Found,[M];100001;Source System Not Found 
+0

ありがとうDimitre。これは私が必要なものです、私はトレーニングコースを見ていきます。 – Ravi

関連する問題