child::node()和child::*有什么区别呢?

child::node()和child::*有什么区别呢?

http://img1.sycdn.imooc.com//climg/5b7e6af20001aa9516770779.jpg

上图是PPT中的定义,先说说我的理解:

child::node()表示筛选出当前节点的所有子节点中所有类型的节点

child::*表示不进行任何筛选,可是前面已经有child定义了,如果不筛选,那么结果不就正是当前节点的所有子节点中所有类型的节点吗?

那么,这两者岂不是没有区别?

正在回答

登陆购买课程后可参与讨论,去登陆

4回答



我们对这样一份文档进行了解析:

http://img1.sycdn.imooc.com//climg/5b7f6f0f0001848b05450768.jpg

这是  child::*  的解析结果:

http://img1.sycdn.imooc.com//climg/5b7f6f360001c0d010080603.jpg

这是child::node() 的解析结果:

http://img1.sycdn.imooc.com//climg/5b7f6f5900015af811070577.jpg

从这个解析结果来看,子元素只包含这些标签的内容;而子节点是包含文档节点和元素节点这些内容的。

祝学习愉快!

一叶知秋519 2018-08-23 20:06:31

同学可以看一下W3C中对于节点的定义:

http://img1.sycdn.imooc.com//climg/5b7ea21e0001491d06820468.jpg

同学也可以进入W3C的链接查看一下; 

http://www.w3school.com.cn/xpath/xpath_nodes.asp 

如果还有问题,可以再次提问~

祝学习愉快!

  • 提问者 慕数据4154996 #1
    chrismorgen老师贴了W3C官方文档中关于child::*和child::node()的解释的图。里面写了child::*是选取当前节点的子元素。而child::node()是选取当前节点的子节点。那么现在我的问题就是子元素和子节点的区别是什么呢?
    2018-08-23 20:58:28
chrismorgen 2018-08-23 19:35:39

同学你好,很抱歉给你带来不好的学习体验,从W3C官方文档解释来看,在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。child::node()是所有子节点,child::*是所有子元素。课程中关于*的说明有些不准确,我们后面会进行优化。祝学习愉快~

http://img1.sycdn.imooc.com//climg/5b7e9c670001cc3208500413.jpg

  • 提问者 慕数据4154996 #1
    那么请问老师子元素和子节点的区别是什么呢?在XPath节点的分类中有元素节点这一项,子元素的元素和元素节点的元素是指同一个概念吗?
    2018-08-23 19:47:27
chrismorgen 2018-08-23 17:29:36

同学可以参考一下这个问答,https://class.imooc.com/course/qadetail/38529,说的很详细,祝学习愉快~

  • 提问者 慕数据4154996 #1
    我看过这个问题的,就是因为那个问题没说清楚我才再问的。您又是瞄了一眼我的题目就翻出一个类似的问题抛给我,我问之前肯定都是找过相似的问题的,我不需要这样的回答。
    2018-08-23 17:49:48
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10205    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师