我试图了解 XPath 以解析diffxml文件。我浏览了 w3schools 网站。我是否正确理解这些?
语句1:/node()[1]/node()[3]
选择根节点的第三个孩子
语句2:/node()[1]/node()[1]/node()[1]
选择根节点的第一个节点的子节点
语句3:/node()[1]/node()[3]/node()[2]
选择根节点下第三个节点的第二个子节点。
是的,您正确理解它们,但这不是您使用 XPath 的方式。首先node()
可以是任何东西,而不仅仅是元素。那么纯索引可以说是选择事物的最佳方式,您应该真正使用名称,并可能使用谓词来过滤节点集。
你会在这个网站上找到很多对 w3schools 的批评。就我个人而言,我发现它是一个有用的资源,但只有当我试图提醒自己我曾经知道的事情时。它并不是真正为从头开始自学而设计的,我建议您需要一种不同的学习策略。称我为守旧派,但当我学习新技术时,我发现没有什么比一本好书更好的了。
据我所知,您已经正确理解了您的示例。但是你了解什么是“节点”吗?例如,您知道在什么情况下空白文本算作一个节点?理解 XPath 的关键是理解数据模型,以及数据模型与 XML 的词法(尖括号)形式相关的方式。