2017-07-20 14 views
2

我有一個RDF/XML元素,並希望找出特定標記的開始和結束之間的所有元素。我怎麼能這樣做?如何在Python中使用XPath來限制特定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

停止解析XML,學習RDF,使用RDFLib。 –

+1

這就是我最終使用的。讓事情變得更容易。我終於使用了rdflib.Graph() – Susa

回答

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) 
+0

請提供一些示例代碼,這對CIM用戶會有所幫助。 –

+0

我剛剛進入一個非常簡單的例子。當然需要根據需要進行編輯。 – Susa

相關問題