提取没有子元素的标签

时间:2013-07-03 11:27:05

标签: xpath xpath-2.0

我有一个类似这样的网页

<p> Content </p> 
........... 
.......... 

<p> Other content    
      <b> Use link <b>    
      <h3> some text <h3> 
</p> 
........... 
........... and some other elements starting with <p> tag having 
different sub-elements inside it 

我想要做的是仅提取那些没有任何子元素的<p>标签的文本

3 个答案:

答案 0 :(得分:1)

使用XSLT时,建议的解决方案是正确的。正如你用xpath标记的那样,这是XPath版本:

//p[count(*) = 0]/text()

答案 1 :(得分:1)

只检查是否有一个,通常比计数更快:

//p[not(*)]/text()

答案 2 :(得分:0)

您可以使用模板

<xsl:template match="p">
    <xsl:if test="count(*) = 0">
        <xsl:value-of select="."/>
</xsl:if>
</xsl:template>

仅当节点内没有其他标签时,才会打印p标签的值。