我有一個xml,我希望得到預期的格式,如下所示。我正在嘗試使用應用模板概念。但一些如何,我無法看到預期的結果。問題,同時應用適用模板
<?xml version="1.0" encoding="UTF-8"?>
<SOAP:ENV>
<SOAP:HEADER/>
<SOAP:BODY>
<OutputResponse>
<RespStructure ID="1">
<RespStatus>Success</RespStatus>
<RespMessage>
<Country>Australia</Country>
<Capital>Canberra</Capital>
</RespMessage>
<RespMessage>
<Country>England</Country>
<Capital>London</Capital>
</RespMessage>
<RespMessage>
<Country>China</Country>
<Capital>Beijing</Capital>
</RespMessage>
</RespStructure>
</OutputResponse>
</SOAP:BODY>
</SOAP:ENV>
現在在此消息中,我將RespMessage和RespStatus都作爲RespStructure的一部分。但Respstatus是RespMessage是多值節點集(Country,Capital)的單個節點集。當我使用應用模板時,只有第一個RespMessage被選中(第二個重複沒有出現),或者Respstatus沒有給出它的值。我試圖得到低於輸出。
<?xml version="1.0" encoding="UTF-8"?>
<SOAP:ENV>
<SOAP:HEADER/>
<SOAP:BODY>
<OutputResponse>
<RespStructure ID="1">
<TransactionStatus>Success</TransactionStatus>
<ListOfCountries>
<SelectedCountry>Australia</SelectedCountry>
<FIrstSelectedCapital>Canberra</FIrstSelectedCapital>
</ListOfCountries>
<ListOfCountries>
<SelectedCountry>England</SelectedCountry>
<FIrstSelectedCapital>London</FIrstSelectedCapital>
</ListOfCountries>
<ListOfCountries>
<SelectedCountry>China</SelectedCountry>
<FIrstSelectedCapital>Beijing</FIrstSelectedCapital>
</ListOfCountries>
</RespStructure>
</OutputResponse>
</SOAP:BODY>
</SOAP:ENV>
我改變域的所有的名字,但我應該得到所有的多個節點,沒有任何遺漏。
我用下面的代碼片段從論壇,但我沒有申請。我如何使用下面的代碼片段來填充RespStatus。當我給了不同的模板,兩個都沒有被調用,只有一個被打印。我試圖將應用模板更改爲更具體的節點集。
<xsl:template match="@*|node()">
<xsl:apply-templates select="@*|node()" />
</xsl:template>
<xsl:template match="Body">
<SOAPENV>
<Header/>
<OutputResponse>
<xsl:apply-templates select="@*|node()" />
</OutputResponse>
</SOAPENV>
</xsl:template>
<xsl:template match="RespMessage">
<ListOfCountries>
<SelectedCountry><xsl:value-of select="Country" /></SelectedCountry>
<FIrstSelectedCapital><xsl:value-of select="Capital" /></FIrstSelectedCapital>
</ListOfCountries>
</xsl:template>
感謝您的回覆。對任何拼寫錯誤抱歉。
嗨論壇,是我的問題制定難以理解。 – Mano