我正在使用以下格式解析一些XML:
<J_TITLE>
<DATA pid="1"><xsl:value-of select = "//TITLE"/></DATA>
<DATA pid="3"><xsl:value-of select = "//TITLE_FOR_3"/></DATA>
</J_TITLE>
我想做的是检查TITLE_FOR_3是否为空。如果它将值更改为DATA pid = 3的其他内容。
我试图完成以下操作,但这不起作用:
<JPM_TITLE>
<DATA pid="1"><xsl:value-of select = "//TITLE"/></DATA>
<xsl:value-of select = "//TITLE_FOR_3"/>
<xsl:choose>
<xsl:when test="string-length($NorTitle)!=0">
<DATA pid="3"><xsl:value-of select = "//TITLE"/></DATA>
</xsl:when>
<xsl:otherwise>
<DATA pid="3"><xsl:value-of select = "//TITLE_FOR_3"/></DATA>
</xsl:otherwise>
</xsl:choose>
</JPM_TITLE>
上述情况与我原来的测试略有不同。如何命名选择值部分以便我可以进行字符串长度检查?或者我如何将其值传递给字符串长度检查?
答案 0 :(得分:0)
你这样做:
<xsl:variable name="NorTitle" select = "//TITLE_FOR_3"/>
..正如Marcus正确指出的那样,测试为:
<xsl:when test="string-length(normalize-space($NorTitle))!=0">
或:
<xsl:when test="string(normalize-space($NorTitle))">
(在XPath中,当字符串为非空时,字符串为'true')