XPath仅在直接子节点中选择一种类型的节点

时间:2013-04-04 17:49:54

标签: xpath

也许有人可以帮我找到问题的解决方案。 我需要在下面的xml中执行XPath查询,该查询仅提取作为直接子节点的“Field”节点。 在下面的示例中,查询应该拉取字段E1F1,E1F2和E1F3。 到目前为止,我正在运行查询://Field,但我得到了所有字段(包括那些我不想要的属于E1_1的字段)。

<Entity id="E1">
  <Field id="E1F1"></Field>
  <Field id="E1F2"></Field>
  <Field id="E1F3"></Field>
  <Entity id="E1_1">
    <Field id="E1_1F1"></Field>
    <Field id="E1_1F2"></Field>
    <Field id="E1_1F3"></Field>
  </Entity>

谢谢!

2 个答案:

答案 0 :(得分:18)

使用绝对XPath:

/Entity/Field

//将匹配任何地方。如果使用单个转发闪光,则匹配必须准确。

答案 1 :(得分:0)

在我的情况下,想要的节点远离根元素(/ html),因此接受的答案不是我需要的,经过一些搜索工作,我发现child axes而不是descendant,我希望这可以帮助使用scrapy的人从html获取一些信息。