也许有人可以帮我找到问题的解决方案。
我需要在下面的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>
谢谢!
答案 0 :(得分:18)
使用绝对XPath:
/Entity/Field
//
将匹配任何地方。如果使用单个转发闪光,则匹配必须准确。
答案 1 :(得分:0)
在我的情况下,想要的节点远离根元素(/ html),因此接受的答案不是我需要的,经过一些搜索工作,我发现child
axes而不是descendant
,我希望这可以帮助使用scrapy
的人从html获取一些信息。