である場合にのみ、私は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>
私は(これらが原因elementBが子としてelementCを持っていないのに作成されます)、空(valuef)タグを取り除きたいです。
どこが間違っていますか?
ありがとうございました!
XMLとXSLTのスニペットでは、http://xsltransform.net/pPJ8LVCで得られる結果は単に空の ' '要素です。だから質問を編集し、あなたが得ると言う出力を得るためのXML入力を提供することを検討してください。 –
完了 - ありがとうございました、インデントされたコードを提供していないのは残念です。 – user2522941