1

我正在使用 Scrapy 解析 XML 文档,并且遇到了 XPath 问题。

我的 XML 如下所示:

<sdn:screen>
 <foaf:Image rdf:about="http://search.shinrokuden.irides.tohoku.ac.jp/shinrokuden/archive/screen/07f9d1a0-5ef4-11e2-91ca-000c2923bf22.jpg"/>
</sdn:screen>


我需要以下网址rdf:about=。我正在使用scrapy 的remove_namespaces()功能,所以我不需要在我的XPath 中使用命名空间。我尝试了以下 XPath,但它们都返回[]

xxs.select('//record/metadata/RDF/Resource/screen/Image/about').extract()

xxs.select('//record/metadata/RDF/Resource/screen/Image/@about').extract()

xxs.select('//record/metadata/RDF/Resource/screen/Image[@about]').extract()

xxs.select('//record/metadata/RDF/Resource/screen[@about]').extract()

xxs.select('//record/metadata/RDF/Resource/screen/@about').extract()

以及许多其他类似的变体。

我知道 up to 的路径'//record/metadata/RDF/Resource/screen/Image'是正确的,因为它会输出数据,但就像我说的那样,那些试图访问“rdf:about”部分的人都想出了[]. 我真的不认为命名空间是一个问题,因为我删除了命名空间,但我可能又错了。

4

1 回答 1

2

如果您仍在寻找该属性的 XPath:

//record/metadata/RDF/Resource/screen/Image/attribute::rdf:about

我还没有测试过,但类似的东西会拉属性

您可以在http://www.w3schools.com/xpath/xpath_axes.asp阅读有关 xpath 的更多信息

于 2014-04-04T18:52:24.883 回答