html
  • xml
  • xpath
  • 2016-08-05 60 views 1 likes 
    1

    我试图找回了来自下面的标记类别层次:即时子文本与所有后代文本的XPath?

    <ul class="categories"> 
        <li>My top level category 
         <ul> 
          <li>my second level category</li> 
         </ul> 
        </li> 
    </ul> 
    

    我想用以下XPath来获取顶级类别的名称:

    //ul[@class='categories']/li/text() 
    

    但是,这显然返回包括第二级类别在内的所有文本。

    如何使用xpath检索顶层类别。您可以假设类别只有两个级别(顶级和二级类别)。

    回答

    0

    但是,显然返回包括第二级类别在内的所有文本。

    其实,不,//ul[@class='categories']/li/text()将只返回直接孩子文本节点匹配//ul[@class='categories']/li元素。在这种情况下:My top level category

    假如你指定了以下的XPath的,你还选择my second level category

    • //ul[@class='categories']/li//text()
    • string(//ul[@class='categories']/li)
    相关问题