如何在 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)
我有一个 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)