使用python将rdf转换为xml
嗨,我有这个RDF输入,我想用python把它变成xml风格,现在我该怎么做使用python将rdf转换为xml,python,rdf,Python,Rdf,嗨,我有这个RDF输入,我想用python把它变成xml风格,现在我该怎么做 @prefix Person: <http://example.org/> . Person:Sophie Person:gender "women" ; Person:likes Person:Peter . Person:Frank Person:bornIn "1949" ; Person:gender "Men" ;
@prefix Person: <http://example.org/> .
Person:Sophie Person:gender "women" ;
Person:likes Person:Peter .
Person:Frank Person:bornIn "1949" ;
Person:gender "Men" ;
Person:married Person:Susie .
Person:Peter Person:father Person:Frank ;
Person:gender "Men" ;
Person:likes Person:Sandra ;
Person:mother Person:Susie .
Person:Sandra Person:bornIn "1980" ;
Person:gender "women" .
Person:Susie Person:bornIn "1956" ;
Person:gender "women" .
@前缀人物:。
人物:索菲人物:性别“女性”;
喜欢的人:彼得。
人物:弗兰克人物:博宁“1949”;
人:性别“男子”;
人:已婚者:苏茜。
人:彼得人:父亲人:弗兰克;
人:性别“男子”;
喜欢的人:桑德拉;
人:母亲人:苏西。
人物:桑德拉人物:博宁“1980”;
人:性别“妇女”。
人物:苏西人物:1956年出生;
人:性别“妇女”。
您可以安装rdflib
包,并使用它在RDF格式之间进行转换。在您的例子中,数据似乎是以“notation3”语法存储的。要解析此内容,您需要在读取图形时指定格式为'n3'
我使用StringIO
来代替下面的实际文件,但概念是一样的
import rdflib
from io import StringIO, BytesIO
str_in = StringIO('''@prefix Person: <http://example.org/> .
Person:Sophie Person:gender "women" ;
Person:likes Person:Peter .
Person:Frank Person:bornIn "1949" ;
Person:gender "Men" ;
Person:married Person:Susie .
Person:Peter Person:father Person:Frank ;
Person:gender "Men" ;
Person:likes Person:Sandra ;
Person:mother Person:Susie .
Person:Sandra Person:bornIn "1980" ;
Person:gender "women" .
Person:Susie Person:bornIn "1956" ;
Person:gender "women" .'''
)
g = rdflib.Graph()
g.parse(str_in, format='n3')
使用并编写为
RDF/XML
-done。事实上,这个RDF/XML将包含所有RDF特定的元数据。添加到文件“C:\ProgramData\Anaconda3\lib\site packages\rdflib\plugin.py”,第103行,在get p=_plugins[(name,kind)]键错误:('RDF/XML',在处理上述异常期间,发生了另一个异常:。。。rdflib.plugin.PluginException:没有为(RDF/XML,)@UninformedUseredit my tagToXml.write(graph.serialize(format='turtle').decode('utf-8'))注册插件。write(graph.serialize(format='RDF/XML')。decode('utf-8'))生成运行时错误@UninformedUser
g.serialize('path/to/file.xml', format='pretty-xml')
with open('path/to/file.xml') as fp:
print(fp.read())
# prints:
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:Person="http://example.org/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="http://example.org/Sophie">
<Person:likes>
<rdf:Description rdf:about="http://example.org/Peter">
<Person:gender>Men</Person:gender>
<Person:likes rdf:resource="http://example.org/Sandra"/>
<Person:father rdf:resource="http://example.org/Frank"/>
<Person:mother rdf:resource="http://example.org/Susie"/>
</rdf:Description>
</Person:likes>
<Person:gender>women</Person:gender>
</rdf:Description>
<rdf:Description rdf:about="http://example.org/Susie">
<Person:gender>women</Person:gender>
<Person:bornIn>1956</Person:bornIn>
</rdf:Description>
<rdf:Description rdf:about="http://example.org/Frank">
<Person:married rdf:resource="http://example.org/Susie"/>
<Person:bornIn>1949</Person:bornIn>
<Person:gender>Men</Person:gender>
</rdf:Description>
<rdf:Description rdf:about="http://example.org/Sandra">
<Person:bornIn>1980</Person:bornIn>
<Person:gender>women</Person:gender>
</rdf:Description>
</rdf:RDF>