我想使用XSLT向輸入XML添加一段XML。但產出並不像預期的那樣。 Pelase幫助。使用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>
下面是我在XSLT作爲參數傳遞給我的另一個XML塊。 這件作品將被添加到輸入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>
請幫忙。我嘗試了許多組合,但沒有運氣。 :(
注:我在執行利用騾子XSLT轉換這種轉化根據所提供的XSLT轉換其有效載荷XML
嗨,我已經試過這個,但是這有一個問題。輸出如下所示 ...... < ns3:輸出xmlns:ns3 =」http://mysample.org「> < ns3:reply id =」rep「$ gt; < ns3:zip/ns3:zip > ..... </ns3:輸出> –
user1760178
輸出正在被轉義。經過將< and >轉換爲<和> – user1760178
那麼我假定傳入的參數值是一個節點或一系列節點。它似乎是一個帶有XML標記的字符串。我不熟悉Mule,所以我不能分辨是否可以更改參數類型。但是我將編輯我的帖子以顯示如何處理字符串參數。 –