2012-07-20 59 views
0

我试图理解XPath以解析diffxml文件。我浏览了w3schools网站。我能正确理解这些吗?了解X-Path表达式

声明1:/node()[1]/node()[3]
选择根节点的第三子

声明2:/node()[1]/node()[1]/node()[1]
选择根节点的第一节点

声明3的子:/node()[1]/node()[3]/node()[2]
选择根节点下的第三个节点的第二个子节点。

回答

1

是的,你理解他们是正确的,但这不是你如何使用XPath。首先node()可以是任何东西,不只是元素。然后,纯索引可以说是选择事物的麦汁方式,您应该真正使用名称,并且可能使用谓词来过滤节点集。

+0

谢谢。我不想在这个实例中使用xpath,只是解析一个输出它的文件。我同意你的看法,但我认为diffxml只使用纯索引进行输出。 – ShrimpCrackers 2012-07-20 08:29:56

1

你会发现很多w3schools在这个网站的批评。我个人认为它是一个有用的资源,但只有当我试图提醒自己我曾经知道的某些事情时。这不是真的从零开始教你自己的事情,我建议你需要一个不同的学习策略。打电话给我老套,但是当我学习一项新技术时,我发现没有比一本好书更好的了。

就我所知,你已经正确地理解了你的例子。但是你知道一个“节点”是什么吗?例如,你知道在什么情况下空白文本被视为一个节点?理解XPath的关键是理解数据模型,以及数据模型与XML的词法(角括号)形式相关的方式。