我有一个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做这件事,但我不确定怎么做。
答案 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)