minidomを使用して既存のxmlに要素を追加するときにxmlフォーマットを修正する方法

ダレン

既存のXMLファイルにサブアイテムを追加しようとしています。要素を追加できますが、新しい行ではなく既存の要素行に追加されます。

toprettyxml()関数を使ってみましたが、行間が2倍になります

これが読み取られているXMLです

<MainItem config="mainItem">
    <DisplayName name="" />
    <SubItems>
        <SubItem path="path01" />
        <SubItem path="path02" />
        <SubItem path="path03" />
    </SubItems>
</MainItem>

私の現在のコード

from xml.dom.minidom import *

dom = parse(r"path/myfile")

element = dom.createElement("SubItem")
element.appendChild(dom.createTextNode("NewPath03"))

cd = dom.getElementsByTagName("SubItem")[2]
cd.parentNode.insertBefore(element, cd)

これが結果です

<MainItem config="mainItem">
    <DisplayName name=""/>
    <SubItems>
        <SubItem path="path01"/>
        <SubItem path="path02"/>
        <SubItem>NewPath03</SubItem><SubItem path="path03"/>
    </SubItems>
</MainItem>

期待される結果

<MainItem config="mainItem">
    <DisplayName name="" />
    <SubItems>
        <SubItem path="path01" />
        <SubItem path="path02" />
        <SubItem path="path03" />
        <SubItem path="path04" />
    </SubItems>
</MainItem>
mzjn

kkawabatからのコメントと、この回答のプリティプリントレシピに触発されて、私は次のことを思いつきました。

from xml.dom.minidom import parse

dom = parse(r"/path/myfile")

element = dom.createElement("SubItem")
element.setAttribute('path', 'path04')

cd = dom.getElementsByTagName("SubItem")[2]
cd.parentNode.appendChild(element) 

def pretty_print(dom):
    return '\n'.join([line for line in dom.toprettyxml(indent=' '*4).split('\n') if line.strip()])

print(pretty_print(dom))

出力:

<?xml version="1.0" ?>
<MainItem config="mainItem">
    <DisplayName name=""/>
    <SubItems>
        <SubItem path="path01"/>
        <SubItem path="path02"/>
        <SubItem path="path03"/>
        <SubItem path="path04"/>
    </SubItems>
</MainItem>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

xsltを使用してXML要素の文字列をフォーマットする方法

分類Dev

既存のXMLに追加するときのXMLWriterのフォーマット

分類Dev

xsltを使用して既存のXMLにノードを追加する

分類Dev

データセットを使用して既存のxmlファイルに追加する

分類Dev

トランスフォーマーを使用しているときに、スパークからの応答にヘッダーを追加する方法

分類Dev

XMLをフォーマットして、個々の行を保持する文字列配列に変換する方法

分類Dev

minidom(python)を使用してXML宣言にアクセスする方法

分類Dev

Javascriptを使用して改行付きのXML文字列をフォーマットする方法は?

分類Dev

XSLTを使用してXMLをコピーし、既存のテキストに追加する方法

分類Dev

XSLトランスフォーマーを使用して選択したXML要素のみを変換する方法

分類Dev

JDomを使用して、1行に1つの属性を含むXMLをフォーマットする

分類Dev

Powershellを使用して既存のxmlファイルに既存の子ノードを保持することにより、親ノードを追加します-

分類Dev

C ++。Netを使用してXML文字列をフォーマットする方法は?

分類Dev

「xmlbuilder」npmパッケージを使用してxmlを作成するときにDOCTYPEを追加する方法

分類Dev

javascript を使用して既存の HTML フォームに入力ボックスの行を追加する方法

分類Dev

USBスティックを修正してgpartedでフォーマットできるようにする方法

分類Dev

jQueryを使用してボタンクリック時に既存のフォームを追加する方法

分類Dev

XlsxWriterを使用して同じテキストに複数のフォーマットを追加する方法

分類Dev

JavaScriptを使用して配列要素を大文字と小文字の形式にフォーマットする

分類Dev

UTCとして現在の日付とフォーマットに日のX番号を追加する方法

分類Dev

既存のxmlファイルに要素を追加するpython

分類Dev

AddValue()を介してTIdHTTPコンポーネントに追加するときに奇数ヘッダーをフォーマットする方法

分類Dev

パンダを使用して、float_formatを使用して.sum()。sum()のフォーマットを修正する方法

分類Dev

JsonConvert.SerializeObjectをフォーマットとともに使用して、CSV値の前後にのみ角かっこを追加する方法

分類Dev

Azureのテラフォームを使用して既存のサブネットにNSGを作成する方法

分類Dev

既存のxml要素にノードを追加する

分類Dev

XmlWriterを使用して既存のXMLファイルを追加する

分類Dev

SQLを使用してxmlのルートノードに属性を追加する方法

分類Dev

PowerShellを使用してxmlに別の子要素を追加する

Related 関連記事

  1. 1

    xsltを使用してXML要素の文字列をフォーマットする方法

  2. 2

    既存のXMLに追加するときのXMLWriterのフォーマット

  3. 3

    xsltを使用して既存のXMLにノードを追加する

  4. 4

    データセットを使用して既存のxmlファイルに追加する

  5. 5

    トランスフォーマーを使用しているときに、スパークからの応答にヘッダーを追加する方法

  6. 6

    XMLをフォーマットして、個々の行を保持する文字列配列に変換する方法

  7. 7

    minidom(python)を使用してXML宣言にアクセスする方法

  8. 8

    Javascriptを使用して改行付きのXML文字列をフォーマットする方法は?

  9. 9

    XSLTを使用してXMLをコピーし、既存のテキストに追加する方法

  10. 10

    XSLトランスフォーマーを使用して選択したXML要素のみを変換する方法

  11. 11

    JDomを使用して、1行に1つの属性を含むXMLをフォーマットする

  12. 12

    Powershellを使用して既存のxmlファイルに既存の子ノードを保持することにより、親ノードを追加します-

  13. 13

    C ++。Netを使用してXML文字列をフォーマットする方法は?

  14. 14

    「xmlbuilder」npmパッケージを使用してxmlを作成するときにDOCTYPEを追加する方法

  15. 15

    javascript を使用して既存の HTML フォームに入力ボックスの行を追加する方法

  16. 16

    USBスティックを修正してgpartedでフォーマットできるようにする方法

  17. 17

    jQueryを使用してボタンクリック時に既存のフォームを追加する方法

  18. 18

    XlsxWriterを使用して同じテキストに複数のフォーマットを追加する方法

  19. 19

    JavaScriptを使用して配列要素を大文字と小文字の形式にフォーマットする

  20. 20

    UTCとして現在の日付とフォーマットに日のX番号を追加する方法

  21. 21

    既存のxmlファイルに要素を追加するpython

  22. 22

    AddValue()を介してTIdHTTPコンポーネントに追加するときに奇数ヘッダーをフォーマットする方法

  23. 23

    パンダを使用して、float_formatを使用して.sum()。sum()のフォーマットを修正する方法

  24. 24

    JsonConvert.SerializeObjectをフォーマットとともに使用して、CSV値の前後にのみ角かっこを追加する方法

  25. 25

    Azureのテラフォームを使用して既存のサブネットにNSGを作成する方法

  26. 26

    既存のxml要素にノードを追加する

  27. 27

    XmlWriterを使用して既存のXMLファイルを追加する

  28. 28

    SQLを使用してxmlのルートノードに属性を追加する方法

  29. 29

    PowerShellを使用してxmlに別の子要素を追加する

ホットタグ

アーカイブ