我有這樣的XML:無法獲得正確的XSLT輸出
<Section>
<Chapter>
<Head>Heading</Head>
<nametable>
<nametitle>MyTitle</nametitle>
<namedomain>MyDomain</namedomain>
<namevalue>value1</namevalue>
</nametable>
<nametable>
<nametitle>MyTitle2</nametitle>
<namedomain>MyDomain2</namedomain>
<namevalue>value2</namevalue>
</nametable>
</Chapter>
</Section>
我希望得到如下的輸出:
MyTitle2
MyDomain2
value2
我用text()
功能檢查的文本內容但它不打印任何東西。
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="//Chapter">
<xsl:comment>Ignore Head tag</xsl:comment>
<xsl:apply-templates select="*[not(self::Head)]"/>
</xsl:template>
<xsl:template match="nametable">
<xsl:for-each select="nametitle">
<xsl:if test="text()='MyTitle2'">
<xsl:apply-templates select="nametitle" />
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:template match="nametitle">
<xsl:apply-templates />
</xsl:template>
</xsl:stylesheet>
我做錯了什麼?
謝謝!
約翰
謝謝,我感謝您的幫助! – JohnX 2012-02-21 22:11:49
@JohnX:我很高興我的回答對你有用。請考慮接受這個答案(提示:點擊答案旁邊的複選標記)。 – 2012-02-21 22:15:57
我有一個問題,如果我用' '替換''併爲nametitle提供模板匹配(包含)您的解決方案將打印MyTitle而不是MyTitle2。我想知道爲什麼這是因爲支票是MyTitle2。 –
JohnX
2012-02-22 16:56:30