检查XML 1.0中节点中的特定值不起作用
我试图获取XML文件中的特定值,并通过使用when-test更改匹配的文本 问题是它实际上没有得到它 XSL:检查XML 1.0中节点中的特定值不起作用,xml,xslt,xml-parsing,xslt-1.0,Xml,Xslt,Xml Parsing,Xslt 1.0,我试图获取XML文件中的特定值,并通过使用when-test更改匹配的文本 问题是它实际上没有得到它 XSL: <xsl:template match="/root/system/coolname"> <xsl:choose> <xsl:when test=".='coolynamey'"> <xsl:text>Male</xsl:text> </xsl:when>
<xsl:template match="/root/system/coolname">
<xsl:choose>
<xsl:when test=".='coolynamey'">
<xsl:text>Male</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>Female</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<root>
<system>
<coolname>coolynamey</coolname>
</system>
</root>
男性
女性
XML:
<xsl:template match="/root/system/coolname">
<xsl:choose>
<xsl:when test=".='coolynamey'">
<xsl:text>Male</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>Female</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<root>
<system>
<coolname>coolynamey</coolname>
</system>
</root>
库利纳米
所以我想要的是:如果节点包含coolynamey,则将其更改为Male。如果不是,则将其设为女性。它现在所做的是输出“女性”,而不是男性,即使“酷女”存在
嗯,对我不起作用。谢谢你,米勒先生 好吧,这是一个微不足道的转换,我相信它会起作用 输入1
<root>
<system>
<coolname>coolynamey</coolname>
</system>
</root>
Male
输出2
<root>
<system>
<coolname>somethingelse</coolname>
</system>
</root>
Female
对我有用。我无法用Saxon 6.5.5重现您的发现。您能显示您正在使用的实际XML输入吗?您拥有的一个没有
coolynamey
节点。也许你转换了错误的来源?嗯,对我来说不起作用。无论如何,谢谢你,米勒先生。@helderdarocha它自己变成了0.0,很奇怪,但无论如何,我编辑了它。这是真实的源代码。请始终发布完整的XSLT样式表。否则就无法诊断问题。