我有这样的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