6

私のプログラムは基本的に入力ファイルを読み取り、そのファイルから lxml.etree を作成します。たとえば、ノードを etree に追加してから、それをファイルに出力したいとします。したがって、私が使用するファイルに書き戻すには:

et.write('Documents\Write.xml', pretty_print=True)

そして、私が持っている出力は次のとおりです。

<Variable Name="one" RefID="two"><Component Type="three"><Value>four</Value></Component></Variable>

私は次のようなものが欲しいのですが:

<Variable Name="one" RefID="two">
    <Component Type="three">
        <Value>four</Value>
    </Component> 
</Variable>

どこが間違っていますか?私は多くの解決策を試しましたが、どれもうまくいかないようです(beautifulsoup、tidy、parser...)

4

2 に答える 2

1

標準パーサーを使用しないでください。でカスタム パーサーを使用しremove_blank_text=Trueます。

parser = etree.XMLParser(remove_blank_text=True)
tree = etree.parse(self.output_file, parser=parser)
# Do stuff with the tree here
tree.write(your_output_file, pretty_print=True)
于 2014-08-18T00:48:20.210 に答える
0

それはまさにそれが機能する方法であるため、奇妙です。これを試していただけますか:

root = etree.XML( YOUR XML STRING )
print etree.tostring(root, pretty_print=True)

<Variable Name="one" RefID="two">
  <Component Type="three">
    <Value>four</Value>
  </Component>
</Variable>

これにより、自分で処理できるフォーマットされた文字列が生成されます。

于 2013-07-18T08:53:53.760 に答える