我試圖做XSLT一些運動,這是我第一次XSLT嘗試:使用,每個XSLT的添加XML元素,只有當標籤值爲非空
我有以下XML作爲我的輸入
<?xml version="1.0" encoding="UTF-8"?>
<root>
<elementA>
<elementB attB="valueb">
<elementC attC="c-value">
what I want
</elementC>
</elementB>
<elementB attB="valueb">
</elementB>
</elementA>
</root>
和下面的XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8"
indent="yes" />
<xsl:template match="/root/elementA">
<newElement>
<xsl:for-each select="elementB[@attB='valueb']">
<valuef>
<xsl:for-each select="./elementC">
<xsl:value-of select=".">
</xsl:value-of>
</xsl:for-each>
</valuef>
</xsl:for-each>
</newElement>
</xsl:template>
</xsl:stylesheet>
轉換後的XML我得到的是:
<newElement>
<valuef>
what I want
</valuef>
<valuef/>
</newElement>
我想擺脫空(valuef)標籤(這些都是因爲elementB不是有elementC作爲一個孩子的創建)。
我在哪裏做錯了?
謝謝!
對於您的XML和XSLT片段,我使用http://xsltransform.net/pPJ8LVC得到的結果只是一個空的' '元素。因此,請考慮編輯問題並提供一個XML輸入,以獲得您輸出的輸出。 –
完成 - 謝謝並抱歉沒有提供縮進代碼。 – user2522941