用于检查HTML元素是否存在的XSLT表达式

时间:2015-06-10 08:17:04

标签: xslt xpath

我正在尝试测试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语法有关!道歉,因为我对这个主题不是很了解,但希望我应该提供足够的信息来帮助我。感谢

HTML Body

2 个答案:

答案 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