私は、Pythonとetreeを使ってgraphmlファイルのいくつかのノードにいくつかの要素を追加しています。私は.graphmlファイルに書きたいいくつかのデータを含む2つの文字列リストを持っています。私はこれを行うことができましたが、.append()関数を使用すると、同じ行に2つの新しい要素が書き込まれます。これらの新しい要素を同じループに書き込んでいる間に、これらの新しい要素を行間で区切る良い方法はありますか?etreeで複数の要素を追加すると、新しい行に各要素を書き込む方法は?
私は、次のデータセットを持っている:
<?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns">
<node id="node1">
<data key="label">node1</data>
<data key="degree">6</data>
</node>
<node id="node2">
<data key="label">node2</data>
<data key="degree">32</data>
</node>
<node id="node3">
<data key="label">node3</data>
<data key="degree">25</data>
</node>
</graphml>
、長年含む二つのリスト:データセットの要素としてリストを追加するには、次のコードを使用して
lastActive["2013","2014","2015"]
lastRelated["2012","2014","2011"]
:
for node in root:
#checks if correct node
for index, i in enumerate(nameOfNode):
if i == node[0].text:
#create and add lastRelated element
lastRelated = Element('data')
lastRelated.set('key', 'lastRelated')
node.append(lastRelated)
lastRelated.text = lastRelated[index]
#create and add lastActive element
lastActive = Element('data')
lastActive.set('key', 'lastActive')
node.append(lastActive)
lastActive.text = lastActive[index]
updatedText = etree.tostring(node)
#write to file
file = open('dataset.graphml', 'wb')
file.write(updatedText)
file.close()
以下の結果が得られます。
<node id="node1">
<data key="label">node1</data>
<data key="degree">6</data>
<data key="lastActive">2015</data><data key="lastRelated">2011</data></node>
ように私はそれを構成することを希望:誰もがこのためのソリューションを持っ
<node id="node1">
<data key="label">node1</data>
<data key="degree">6</data>
<data key="lastActive">2015</data>
<data key="lastRelated">2011</data>
</node>
?
私は '\ n'は動作しないと思いますか? – Eugene
私は\ n:lastActive.set( '\ n key'、 'lastActive')で\ nを使用しようとしましたが、これは当然「 Arefo
It 'updatedText = etree.tostring(node)'に入ります。なぜなら、 'file.write(updatedText)'は '\ n'があるべき場所であるからです。したがって、各要素を追加してから、新しい行を追加する必要があります。または、http://stackoverflow.com/questions/3095434/inserting-newlines-in-xml-file-generated-via-xml-etree-elementtree-in-python、またはhttp://stackoverflow.com/questions/34608740を参照してください。/how-to-get-xml-output-in-a-file-with-new-line-python-xml-etree、またはhttp://stackoverflow.com/questions/17402323/use-xml-etree- elementtree-to-write-out-nicely-formatted-xml-files – Eugene