- 3
- 0
- 约1.49万字
- 约 64页
- 2017-05-09 发布于湖北
- 举报
example.xml文档: ?xml version=1.0 encoding=GB2312? A id=a1 B id=b1 name=B1 C id=c1 B id=b2 name=B2b2/B D id=d1d1/D E id=e1e1/E E id=e2e2/E Ee3/E /C /B B id=b3 name=B3b3/B C id=c2 D id=d2d2/D E id=e3e3/E /C /A 14.3.1 路径匹配 路径匹配与文件路径的表示相仿,通常使用以下几个符号: /:选取根节点。如果一个路径以“/”开头,那么它必须是表述该节点所在的绝对路径;如果不以“/”开头,那么它表述是该节点的相对路径,与当前节点有关。 //:选取文档中所有符合条件的节点,不管该节点位于何处。 .:选取当前节点。 ..:?选取当前节点的父节点。 |:条件之间逻辑或连接。 结合example.xml文档给出以下示例: /A/B/C/E:选取A→B→C下的3个E节点。 //B/C:选取所有父节点为B的C节点,即id属性值为c1的节点。 //B | //C:所有B元素和C元素,共有5个节点。 example.xml文档: ?xml version=1.0 encoding=GB2312? A id=a1 B id=b1 name=B1 C id=c1 B id=b2 name=B2b2/B D id=d1d1/D E id=e1e1/E E id=e2e2/E Ee3/E /C /B B id=b3 name=B3b3/B C id=c2 D id=d2d2/D E id=e3e3/E /C /A 14.3.2 谓词 谓词用来查找某个特定的节点或者包含某个指定值的节点,谓词被嵌在方括号中。 对于每一个节点,它的各个子节点是有序的,每个子节点对应一个“位置值”,它从1开始顺序编号。可以通过使用以下方式来指定某些节点: [位置值]:选取指定位置值的某个节点。 [last()]:选取最后一个节点。 [position() 比较运算符 位置值]:选取满足位置条件的所有节点。 [标记 比较运算符 文本值]:选取标记满足条件的所有元素。 结合example.xml文档给出以下示例: /A/B/C/E[1]:选取A→B→C下的第一个E节点,即id属性值为e1的节点。 /A/B/C/E[last()]:选取A→B→C下的最后一个E节点,即没有属性值的E节点。 /A/B/C/E[last()-1]:选取A→B→C下的倒数第二个E节点,即id属性值为e2的节点。 example.xml文档: ?xml version=1.0 encoding=GB2312? A id=a1 B id=b1 name=B1 C id=c1 B id=b2 name=B2b2/B D id=d1d1/D E id=e1e1/E E id=e2e2/E Ee3/E /C /B B id=b3 name=B3b3/B C id=c2 D id=d2d2/D E id=e3e3/E /C /A 14.3.3 属性匹配 属性匹配常用的符号为“@”,即在属性名前加“@”前缀,“@*”表示选取所有具有属性的节点,“not(@*)”表示选取所有不具有属性的节点。 结合example.xml文档给出以下示例: //@id:选择所有的id属性,共有11个节点。 //B[@id]:选取所有具有属性id的B节点,共有3个节点。 //E[@id=e2]:选取id属性值为e2的E节点,共有1个节点。 /A/B[@name=B1]/C/E:选取A→B→C下的所有E节点,且其中的B节点的name属性值为“B1”。共有3个节点。 14.3.4 通配符 在XML文档中可以使用以下通配符: *:匹配任何元素节点。 @*:匹配任何属性节点。 node():匹配任何类型的节点。 结合example.xml文档给出以下示例: //*:选取所有的节点,共有12个节点。 //D[@*]:选取所有具有属性的D节点,共有2个节点。 //E[not(@*)]:选取所有不具有属性的E节点,共有1个节点。 14.
原创力文档

文档评论(0)