2017-07-20 3 views
2

私はRDF/XML Elementを持っており、特定のタグの開始と終了の間のすべての要素を探したいと思っています。どうすればいい?例えば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

関連する問題