[英]Multiple child nodes of the same name in xml to convert to xsl
輸入 XML
<Address country="USA" countryISO2Code="US">
<Street addr="GH Nagar"/>
<Street addr="Naboor"/>
<Street addr="Besides Al Drive Inn"/>
</Address>
預期輸出響應
"address": {
"country": "USA",
"countryISO2Code": "US",
"Street1": "GH Nagar" ,
"Street2": "Naboor" ,
"Street3": "Besides Al Drive Inn"
}
任何人都可以建議為上述內容編寫xsl。
你可以使用這個:
<xsl:output indent="yes" method="text"></xsl:output>
<xsl:template match="Address">
<xsl:text>"address":{</xsl:text>
<xsl:for-each select="@*">
<xsl:value-of select="concat('
"', local-name(.), '": "', ., '",')"/>
</xsl:for-each>
<xsl:for-each select="Street">
<xsl:text>
</xsl:text>
<xsl:value-of select="concat('"',local-name(.), position(), '": "',@addr,'",')"/>
</xsl:for-each>
<xsl:text>
}</xsl:text>
</xsl:template>
輸出
"address":{
"country": "USA",
"countryISO2Code": "US",
"Street1": "GH Nagar",
"Street2": "Naboor",
"Street3": "Besides Al Drive Inn",
}
它沒有按照您的建議工作。 你能看看下面的嗎? 我能夠獲得除“街道”值以外的其他值。
要求您僅針對街道部分提出更改建議。
我的 xsl 是
<xsl:for-each select="./Address/Street">
<xsl:text></xsl:text>
<xsl:value-of select="concat('"',local-name(.), position(), '": "',@addr,'",')" />
</xsl:for-each>
輸出是
#text": "\"Street1\": \"address1\",\"Street2\": \"address2\",\"Street3\": \"address3\",",
預期輸出是
“Street1”:“GH Nagar”,“Street2”:“Naboor”,“Street3”:“Al Drive Inn 之外”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.