【发布时间】:2010-03-15 14:03:37
【问题描述】:
我将举一个我遇到的问题的例子。我的XML是这样的
<root>
<child Name = "child1">
<node>
<element1>Value1</element1>
<element2>Value2</element2>
</node>
</child>
<child Name = "child2">
<element1>Value1</element1>
<element2>Value2</element2>
<element3>Value3</element3>
</child>
</root>
我有返回所有“element2”节点的 xpath 表达式。然后我想为每个“element2”类型的节点找到包含它的“child”类型的节点。问题是这两个节点之间可以有 1 到 n 个不同的节点,所以我不能只使用“..”。有没有类似“//”的东西会向上而不是向下看
我有一些 xpath 的基本知识,根据http://www.w3schools.com/xpath/xpath_syntax.asp"..' 返回当前节点父级问题是当前节点是"element2",问题是 xml 是动态的,来自第三方库所以我可以有这样的xml
<child Name = "child1">
<node>
<element1>Value1</element1>
</node>
</child>
或者像这样
<child Name = "child1">
<node1>
<node2>
<node3>
<element1>Value1</element1>
<element2>Value2</element2>
</node3>
</node2>
</node1>
</child>
“元素”和子节点之间可以有 3 个以上的节点,节点的数量从 1 到 20 不等。请给我一个示例,仅使用一个 xpath 查询来获取“子”节点在两种情况下都使用“ ..”
最好的问候,
约旦
【问题讨论】:
-
使用缩写
..相当于使用parent::轴。您不能使用..的说法是完全错误的。请用例子验证你的陈述,这样你就会大大减少用虚假和误导性陈述提出的问题的数量。学习一点 XPath 也没什么坏处。 -
嗨,它写在我的问题中。在“element2”和“child”之间,有 1 到 n 个其他节点的云,所以我不知道我需要使用谁多次使用“..”来到达“child”
-
@Dimitre Novatchev 我已经编辑了我的问题