【问题标题】:xpath check if node has not specific childrenxpath 检查节点是否没有特定的子节点
【发布时间】:2012-10-12 18:07:56
【问题描述】:

我有一个这样的 HTML 文件:

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

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

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

【问题讨论】:

    标签: xpath


    【解决方案1】:

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

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

    只计算td儿童:

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

    像这样进行比较:

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

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

    【讨论】:

      【解决方案2】:
      <xsl:for-each select="tr">
        <xsl:variable name="count" select="count(td)"/>
        </xsl:for-each>
      </xsl:template>
      

      【讨论】:

        【解决方案3】:
        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

        【讨论】:

          猜你喜欢
          • 2017-04-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多