如何在Python中使用XPath限制特定xml元素的开始和结束标记之间的元素提取范围?

时间:2017-07-20 00:12:11

标签: xpath rdf python-3.5 rdf-xml

我有一个RDF / XML元素,想要找出特定标记的开头和结尾之间的所有元素。我怎么能这样做?

例如:

<cim:BaseVoltage rdf:ID="_0526B48408F744919E7C03672FCD0D71">       
<cim:BaseVoltage.isDC>false</cim:BaseVoltage.isDC>  
<cim:BaseVoltage.nominalVoltage>400.000000000</cim:BaseVoltage.nominalVoltage>    
</cim:BaseVoltage>

我想提取值BaseVoltage.isDC和BaseVoltage.nominalVoltage,因为它们位于开始和结束标记之间。如上所述,这只是一个例子,我还有更多这样的起始和结束标记。

我想过用Xpath做这件事,但我不确定怎么做。

1 个答案:

答案 0 :(得分:1)

使用XPath解析XML文件对于这个问题来说似乎是一个非常糟糕的主意。 Rdflib非常容易。

import rdflib
from rdflib import Graph
from rdflib.namespace import Namespace

BASE = Namespace('http://example.org/')

graph = rdflib.Graph()
graph.parse('rdf.xml', format='xml', publicID=BASE)

for p,o in graph[BASE['#_0526B48408F744919E7C03672FCD0D71']]:
   print(p, o)