00:00
我们回家上节课内容啊,上节课呢,我们讲到了叉pass的谓词。Predictdicate.啊,也就是说我把这个元素筛出来之后,我再用位置筛选,属性筛选,文本筛选,若干种筛选,甚至逻辑运算,把这个我要摘的东西摘出来是吧?那这回呢,我们做一个练习,尼克提供的学习资源。首先呢,我们会得到一个红颜色,是叉帕选中的结果,那我们就一个一个来看哈,这个的意思是跟下的一个斜杠是跟下的AA。是根下的AA下的CC,是根下的AA下的DD下的BB,那这个BB为什么不可以呢?因为它不是。DDD下是吧,因为它它不在这个路径里面,所以这个三个都是绝对路径是吧,那这个两杠呢,是任意层级下的,任意层级下的BBB,任意层级下的DDD以下的BBB。这个BB为什么不行呢?因为他不在。
01:01
DDD底下是吧?得得必须得是DDD底下的BBB才可以,这都是按路径筛对吧?根下的A下的CC下的DD下的星号,任意元素,任意三层之后后的BB。那这个位BB不行呢,因为它2层,这个BB不行呢,因为它4层,所以不多不少3层才可以。任意层级下的任意元素全选中。全选中。而且选中的次序呢,是深度优先迭代。这个就有位词了,根下的AA下的BBB,什么样的BB?第一个BBB,换句话说是根下的AA下的第一个BBB,根下的AA下的最后一个DBBB可以直接筛选属性。任意层级下的BBB什么样的BB?有任意ID属性的BBB任意层级下有ID属性的BBB任意层级下有name属性的BBB任意层级下有任意属性的BBB任意层级下没有属性的BBB任意层级下节点名字是BBB的BB。
02:06
这是在用什么方式去筛选呢?这是用标签本身去筛选。任意层级下把这个标签标准化,空格之后是3个B的这种BB。这个是没问题的,这个为什么也可以呢?因为它的空格已经被标准化了,把不相关的空格去掉了,就是满足的任意层级下有两个BBB元子元素的任意元素。这个DD是符合的,CC不符合的原因呢,是因为它有3个,它有3个不符合,必须得2个,任意层级下有2个任意元素的任意元素,任意层级下有3个子元素的任意元素,任意层级下名字是BB的任意元素指定的是标签名。任意层级下B开头的任意元素,两个斜杠就是任意层级呗。任意层级下标签名带C的任意元素,任意层级下长度为3的任意元素。
03:07
任意层级下长度小于3的任意元素,任意层级下长度大于3的任意元素,并集一个数加上并集任意层级加CC,任意层级加BB根下的AA下的EE。或者呢,是任意层级下BBB。根下的AA下的EE,或者是任意层级下DD下的CC,或者是根下的AA或者任意层级下的BB,切杆呢是根下的AA子元素啊,这个可以省,这两个是相等的。这个和这个还有这个都是相等的,也就是说,呃,凡是写一个名儿,其实就是相当于什么子元素,为什么什么那上来之后写一名呢?就是根下的子元素为什么什么什么的靠的是子,第三段的是子孙,子孙孙是吧?根下的AA下的BB下的所有子孙,AA下的BB下的所有子孙。
04:04
再继续看第3段的任意成绩下的CC下的。所有子孙。愿意从加弟弟的腹肌。那这个呢,父级是直接的父亲,Ancc是父亲的父亲,还有父亲的父亲的父亲。根下的,AA下的,BB下的,DD下的,CC下的,EE下的所有。祖先,祖先这是这个找到的这个位置,他往上走的所有祖先都是对吧。祖先就包括父亲的父亲,Following sibling什么意思呢?后边的兄弟。跟下来A下的BBB,先找到这个跟下来A一下的BBB,他的什么弟弟?茶茶茶喝,谁谁谁。
05:01
任意层级下的CCC的后边的弟弟。弟弟同一辈的弟弟CC下的D后面CC后面的是吧,就是这样是可以的。有弟弟就有什么呀,Following sibling就有preing the sibling哥哥。跟下了AA下的叉叉的哥哥,他有一个哥哥,任意层级下的CCCC的哥哥,CC的哥哥,这个CCCC的哥哥后续这是什么意思呢?啊,不光是呃,他的弟弟,以及他弟弟的一家。是这么一个概念。哎,它后边的能找到跟下的A一下的叉叉。这个是这个叉叉叉叉叉叉的弟弟以及弟弟一家是吧。还有呢,Following.人一成天了,贼贼。找到自Z它的。弟弟。以及弟弟一家,还有呢,就是后边儿的也这也都算following j zz, 不但有ZZ的直接的弟弟,还有什么呀,还有它后边的这个东西,他不算这个主汁儿的。
06:10
不在这轴,但是他也算后边的,他following。后续节点。连上一半儿中或者更上辈分中排名靠后的所有分支都都都都算,为什么呢?后边儿的是什么呀?就是说他得深度优先便利啊,你优先到到这儿了,到这个位置,那它后边儿了,是不是就就所有的这些后边的都包括了,对吧。难道不会包括祖先的?前面的呢,前面就是深度优先。还是这个东西本身是它它前面的这个这个东西,那这个呢,它是找到任意层加G居记,这个是GGG。GGG的什么呀,前面的前面的就包括。他。前面的这个东西不但包括他自身前面的,还包括他爸爸前面的,还有他爷爷前面的,这些都算前面的,因为他是深度优先,便利嘛,所以这些前面的都得算上。
07:12
但是不包布啊,它的直系直系祖先,所以这个呢,就是这么一棵树,我们经常说不管是呃动物的种类也好,还是家族也好,还是软件的版本也好,它都是处于树当中。就是因为它在时间当中会产生空间的分支,然后就会有相应的变化,先找到自身,比如说这个是一个目标是self self就有什么直接的子,还有子子孙孙decendant啊,然后呢,他有直接的父parent,他有父亲的父亲的父亲祖历代祖先ancc大夫,他有。直接的哥哥,哎,直接的弟弟还有什么呢?还有他的前面的,前面的包括他的哥哥一家,还有他的爸爸前面的这个,因为他是深度优先搜索嘛,所以他前面的这些所有的前面都算。
08:13
后边呢,不光包括弟弟一家,还有包括啊后边的这个他爸爸后边的,或者他爷爷后边的这些都都都得算是吧,说白了是一个路径语言,是一个路径语言,这个路径语言它可以用路径本身的方式去描述,还可以用位词的方式去筛选,是选树的时候一种非常有用的工具。啊,非常独特,也非常有用。那我们能不能做一些具体例子来玩儿呢?我们下次再说哦,EZ加枪。
我来说两句