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

How to limit the Scope of element extraction between the start and end tag of a particular xml element using XPath in Python?

我有一个 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 来做,但我不太确定怎么做。

使用 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)