0

私はdatapower SOAを使用しています

私はXMLを持っています:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<data>data</data>
</s:Body>
</s:Envelope>

私はそれをに変更したい:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<ns0:ReceptionRequest xmlns:ns0="ReceptionRequest">
<Message>
<data>data</data>
</Message>
</ns0:ReceptionRequest>
</s:Body>
</s:Envelope>

XSLで私を助けてください

タグの前後に何かを追加する方法

4

2 に答える 2

0

次の XSLT を使用できます。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns0="ReceptionRequest" exclude-result-prefixes="soap">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="node()" />
        </xsl:copy>
    </xsl:template>

    <xsl:template match="soap:Body">
        <xsl:copy>
            <ns0:ReceptionRequest xmlns:ns0="ReceptionRequest">
                <Message>
                    <xsl:apply-templates />
                </Message>
            </ns0:ReceptionRequest>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

は新しい要素を作成し、要素<xsl:template match="soap:Body">をコピーします<data>

于 2013-09-23T14:18:22.150 に答える
0

以下のコードを使用して、その値をコピーすることもできます。

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >

  <xsl:template match="@*|node()">
    <xsl:copy>
   <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>    

</xsl:template>

    <xsl:template match = "*[local-name() = 'Body']">

      <xsl:copy>
      <ns0:ReceptionRequest xmlns:ns0="ReceptionRequest">
        <Message>
           <xsl:copy-of  select ="*[local-name() = 'data']"/>

        </Message>
    </ns0:ReceptionRequest>
     </xsl:copy>
   </xsl:template>


</xsl:stylesheet>
于 2015-04-16T07:38:35.450 に答える