dsfsfsfsfs55656 2016-12-15 21:52
浏览 252
已采纳

没有文本节点后代的文档中所有元素的Xpath?

I'm not fully familiar with XPath. I did an extensive search and only found a solution for immediate children.

Requirement is to select an element who does not have any child, grand child, grand grand child, or any child that is present in its family tree which has a text node in it.

A simple example is:-

<div><p></p><p><span></span></p><p><span>notemptychild</span></p><p>notempty</p></div>

If I run the following XPath query:-

//p[not(text())]

It gives following output:-

Element='<p/>'
Element='<p>
   <span/>
</p>'
Element='<p>
   <span>notemptychild</span>
</p>'

(I'm using freeformatter xpath tool: http://www.freeformatter.com/xpath-tester.html)

The first Element is a valid selection.

The second Element is a valid selection.

The third Element is NOT a valid selection because p's child span has a text node in it.

I hope I didn't made the question over complicated.

  • 写回答

1条回答 默认 最新

  • douyun6781 2016-12-15 21:57
    关注

    This XPath,

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

    will select all elements in the document without text node descendants.


    This XPath,

    //*[not(.//text()[normalize-space()])]
    

    does the same but allows text nodes that consist of just whitespace.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

    报告相同问题?

    悬赏问题

    • ¥15 PCL注册的选点等函数如何取消注册
    • ¥15 问一下各位,为什么我用蓝牙直接发送模拟输入的数据,接收端显示乱码呢,米思齐软件上usb串口显示正常的字符串呢?
    • ¥15 Python爬虫程序
    • ¥15 crypto 这种的应该怎么找flag?
    • ¥15 代码已写好,求帮我指出错误,有偿!
    • ¥15 matlab+波形匹配算法
    • ¥15 转录组分析做聚类树图时癌旁组被分到了癌组
    • ¥15 大一Python字典
    • ¥15 multisim电路设计(相关搜索:设计报告)
    • ¥15 PC-lint Plus