我正在尝试测试XSLT中是否存在HTML元素但无法使其工作。我目前正在尝试根据它是否可以像这样找到一个变量:
<xsl:variable name="TestParaText">
<xsl:choose>
<xsl:when test="contains(smf:body,index[@id='testSpan'])">
<xsl:value-of select="'Element found'"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'Element Not Found'"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
在我的HTML中,我有这个:
<span id="testSpan" style="display:none"></span>
我不希望元素可见,所以我设置了一个样式属性,但我很确定它与我糟糕的xpath / XSLT语法有关!道歉,因为我对这个主题不是很了解,但希望我应该提供足够的信息来帮助我。感谢
答案 0 :(得分:0)
contains
函数适用于字符串。如果您想测试smf:body
是否包含节点index[@id='testSpan']
。你应该有这样的东西:
<xsl:when test="body[descendant::index[@id='testSpan2']]">
答案 1 :(得分:0)
如果以下是你的XML
INPUT XML:
<span id="testSpan" style="display:none"></span>
XSL:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="span">
<xsl:copy>
<xsl:choose>
<xsl:when test = "@id = 'testSpan'">
<TestParaText>
Exists
</TestParaText>
</xsl:when>
<xsl:otherwise>
<TestParaText>
Doesnt Exists
</TestParaText>
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
OUTPUT将是:
输出:
<?xml version="1.0" encoding="UTF-8"?>
<span>
<TestParaText>
Exists
</TestParaText>
</span>
请分享您的请求xml和预期的OUTPUT