我正在尝试使用 XSLT 将一段 XML 添加到输入 XML。但是输出并没有像预期的那样出现。请帮忙。
我的输入 XML :
<input xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="nbA2.8.90.xsd">
<nodeA id="test">
<inodeAA> Sample </inodeAA>
<inodeAB> Samples </inodeAB>
</nodeA>
<nodeB id="test">
<inodeBA> Sample </inodeBA>
<inodeBB> Samples </inodeBB>
</nodeB>
</input>
下面是另一个 XML 片段,我将其作为参数传递给我 XSLT。这段将被添加到输入 XML 中:
<ns3:output xmlns:ns3="http://mysample.org">
<ns3:reply id="rep">
<ns3:zip>55555</ns3:zip>
<ns3:place>SampleLoc</ns3:place>
</ns3:reply>
</ns3:output>
以下是我的预期输出:
<input xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="nbA2.8.90.xsd">
<nodeA id="test">
<inodeAA> Sample </inodeAA>
<inodeAB> Samples </inodeAB>
</nodeA>
<nodeB id="test">
<inodeBA> Sample </inodeBA>
<inodeBB> Samples </inodeBB>
</nodeB>
<ns3:output xmlns:ns3="http://mysample.org">
<ns3:reply id="rep">
<ns3:zip>55555</ns3:zip>
<ns3:place>SampleLoc</ns3:place>
</ns3:reply>
</ns3:output>
</input>
以下是我用于此任务的 XSL:
在下面的 XSLT 中,参数“outParam”包含我试图添加到我输入的 xml 片段。
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns3="http://mysample.org"
exclude-result-prefixes="soap xsl">
<xsl:output omit-xml-declaration="yes" indent="yes" />
<xsl:param name="outParam"></xsl:param>
<xsl:template match="input">
<input>
<xsl:copy-of copy-namespaces="no" select="./@*" />
<xsl:copy-of copy-namespaces="no" select="node() | @*" />
</input>
<xsl:copy >
<xsl:value-of select="$outParam" disable-output-escaping="yes" ></xsl:value-of>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
下面是我得到的输出。这与我的预期输出不符。
<input xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns3="http://mysample.org"
xsi:noNamespaceSchemaLocation="nbA2.8.90.xsd" >
<nodeA id="test">
<inodeAA> Sample </inodeAA>
<inodeAB> Samples </inodeAB>
</nodeA>
<nodeB id="test">
<inodeBA> Sample </inodeBA>
<inodeBB> Samples </inodeBB>
</nodeB>
</input>
<input xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns3:output xmlns:ns3="http://mysample.org">
<ns3:reply id="rep">
<ns3:zip>55555</ns3:zip>
<ns3:place>SampleLoc</ns3:place>
</ns3:reply>
</ns3:output>
</input>
请帮忙。我尝试了很多组合,但没有运气。:(
注意:我正在使用 Mule XSLT 转换器执行此转换,该转换器基于提供的 XSLT 转换有效负载 XML。