13

也许有人可以帮助我找到解决问题的方法。我需要在下面的 xml 中执行一个 XPath 查询,它只提取作为直接子节点的“字段”节点。在下面的示例中,查询应提取字段 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>

谢谢!!

4

2 回答 2

24

使用绝对 XPath:

/Entity/Field

//将匹配任何地方。如果您使用单个正斜杠,则匹配必须准确。

于 2013-04-04T17:54:14.283 回答
0

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

于 2016-04-30T03:46:13.660 回答