あなたの助けが必要です。
XML: 次の SOAP メッセージがあります。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<Service>
<ServiceRequest>
<tag3>value3</tag3>
</ServiceRequest>
</Service>
</soapenv:Body>
</soapenv:Envelope>
XSL: XML プロパティからノードを追加する必要があります。私はこのxslで試します:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<xsl:output encoding="UTF-8" indent="yes" method="xml" standalone="no" omit-xml-declaration="no"/>
<xsl:variable name="props">
<properties>
<property>
<key>tag1</key>
<value>value1</value>
</property>
<property>
<key>tag2</key>
<value>value2</value>
</property>
</properties>
</xsl:variable>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="ServiceRequest">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
<xsl:for-each select="$props/properties/property">
<xsl:variable name="tag" select="key" />
<xsl:element name="{$tag}">
<xsl:value-of select="value" />
</xsl:element>
</xsl:for-each>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
XSL 後の XML: 次のような結果が必要です。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<Service>
<ServiceRequest>
<tag1>value1</tag1>
<tag2>value2</tag2>
<tag3>value3</tag3>
</ServiceRequest>
</Service>
</soapenv:Body>
</soapenv:Envelope>
しかし、XSL は機能しません。助けてください。