4
lxml.etreeを使用してJSONオブジェクトからxmlツリーを作成しようとしています。以下のような彼らのコロンのCONTINタグ名の一部何か: -lxmlタグ名に ":"を付けたもの
「設定:現在の」私はタグ名として「{設定}現在」を
を使用してみましたが、私はこれを取得: -NS0を:現在のxmlns:ns0 = "設定"
lxml.etreeを使用してJSONオブジェクトからxmlツリーを作成しようとしています。以下のような彼らのコロンのCONTINタグ名の一部何か: -lxmlタグ名に ":"を付けたもの
「設定:現在の」私はタグ名として「{設定}現在」を
を使用してみましたが、私はこれを取得: -NS0を:現在のxmlns:ns0 = "設定"
はい、まずXMLネームスペースを読み、理解してください。
>>> MY_NAMESPACES={'settings': 'http://example.com/url-for-settings-namespace'}
>>> e=etree.Element('{%s}current' % MY_NAMESPACES['settings'], nsmap=MY_NAMESPACES)
>>> etree.tostring(e)
'<settings:current xmlns:settings="http://example.com/url-for-settings-namespace"/>'
Uをそして、あなたはあなたがあなたのXMLツリーにnsmap=MY_NAMESPACES
を持つ要素を持っている必要があること、デフォルトの名前空間を持つ
>>> MY_NAMESPACES={'settings': 'http://example.com/url-for-settings-namespace', None: 'http://example.com/url-for-default-namespace'}
>>> r=etree.Element('my-root', nsmap=MY_NAMESPACES)
>>> d=etree.Element('{%s}some-element' % MY_NAMESPACES[None])
>>> e=etree.Element('{%s}current' % MY_NAMESPACES['settings'])
>>> d.append(e)
>>> r.append(d)
>>> etree.tostring(r)
'<my-root xmlns:settings="http://example.com/url-for-settings-namespace" xmlns="http://example.com/url-for-default-namespace"><some-element><settings:current/></some-element></my-root>'
そのノートを、組み合わせることができます。そして、名前空間とXMLツリーを生成するためにそれを使用階層。その後、すべての子孫ノードがその宣言を使用できます。あなたのケースでは、あなたにはそのビットを持っていないので、lxmlのはns0
のような名前空間名はまた、あなたがタグ名のために新しいノードを使用する名前空間URIを作成するときに、名前を名前空間ではない生成:{http://example.com/url-for-settings-namespace}current
は学ぶためにいくつかの時間を取りますXML名前空間の基礎。次にhttp://lxml.de/tutorial.html#namespacesを読んでください。 – mzjn