20

これが私のサンプルコードです:

from xml.dom.minidom import *
def make_xml():
    doc = Document()
    node = doc.createElement('foo')
    node.innerText = 'bar'
    doc.appendChild(node)
    return doc
if __name__ == '__main__':
    make_xml().writexml(sys.stdout)

上記のコードを実行すると、次のようになります。

<?xml version="1.0" ?>
<foo/>

取得したい:

<?xml version="1.0" ?>
<foo>bar</foo>

innerTextプロパティがあると推測しましたが、コンパイラエラーは発生しませんが、機能していないようです...テキストノードを作成するにはどうすればよいですか?

4

2 に答える 2

13

@ダニエル

返信ありがとうございます。ミニダムでそれを行う方法も理解しました(ElementTreeとミニダムの違いはわかりません)


from xml.dom.minidom import *
def make_xml():
    doc = Document();
    node = doc.createElement('foo')
    node.appendChild(doc.createTextNode('bar'))
    doc.appendChild(node)
    return doc
if __name__ == '__main__':
    make_xml().writexml(sys.stdout)

質問を投稿する前にこれを試したことを誓います...

于 2008-08-27T00:42:32.723 に答える
9

オブジェクトに属性を設定しても、コンパイル時または実行時のエラーは発生しません。オブジェクトがその属性にアクセスしない場合は、何の役にも立ちません(つまり、「node.noSuchAttr = 'bar'」でもエラーは発生しません)。

の特定の機能が必要でない限りminidom、私は次を調べますElementTree

import sys
from xml.etree.cElementTree import Element, ElementTree

def make_xml():
    node = Element('foo')
    node.text = 'bar'
    doc = ElementTree(node)
    return doc

if __name__ == '__main__':
    make_xml().write(sys.stdout)
于 2008-08-27T00:35:29.807 に答える