xpath检查节点是否没有特定的子节点

时间:2011-12-05 21:05:03

标签: xpath

我有一个像这样的HTML文件:

 <tr>
   <td class= 'iconmenu' width="100%">...</td>
 </tr>
 <tr>
   <td class= 'iconmenu' width="100%">...</td>
   <td class= 'iconmenu'>...</td>
</tr>

第一个元素有一个孩子,第二个元素有两个孩子,问题是:

如何检查第一个元素是否有一个孩子?

3 个答案:

答案 0 :(得分:2)

计算第一个tr的子元素数:

count(/*/tr[1]/*)

仅计算td个孩子:

count(/*/tr[1]/td)

执行这样的比较:

<xsl:if test="count(/*/tr[1]/td)=1">

请注意使用绝对路径(以/开头)。你可能想做count(//tr[1]/td)。请注意,这将返回所有 tds的计数,每个行是文档中每个表中的第一行。

答案 1 :(得分:0)

<xsl:for-each select="tr">
  <xsl:variable name="count" select="count(td)"/>
  </xsl:for-each>
</xsl:template>

答案 2 :(得分:-1)

let $s := <test><table>
<tr>
   <td class= "iconmenu" width="100%">...</td>
 </tr>
 <tr>
   <td class="iconmenu" width="100%">...</td>
   <td class="iconmenu">...</td>
</tr>
</table></test>


return fn:count($s//table/tr[1]/td)

请参考:http://www.xqueryfunctions.com/xq/c0015.html#c0016