Idea to Code

アイデアをコードへ
独学でプログラミング関係にいろいろ手を出すサイト

hawk

VBScript

VBScriptでXMLインデント2015/08/07

VBScriptでXMLのデータをインデントしてみた。

input.xml内の要素の階層ごとにタブでインデントする。

出力ファイル名を同じにすると上書きできる。


ごにょごにょした後に保存する場合は、一度保存し、再度開きなおして保存すればインデントされる。

ただし、改行されていないとインデントされないため、テキストノードとして改行を入れる必要がある模様。

indentXML.vbs
Dim xml
Set xml = WScript.CreateObject("MSXML2.DOMDocument")
xml.load("input.xml")
xml.save("output.xml")
input.xml
<?xml version="1.0" encoding="UTF-8"?>
<root>
<char>
<name>クワイ</name>
<color>緑</color>
</char>
<char>
<name>オビ</name>
<color>青</color>
</char>
<char>
<name>モール</name>
<color>赤</color>
</char>
</root>
output.xml
<?xml version="1.0" encoding="UTF-8"?>
<root>
  <char>
    <name>クワイ</name>
    <color>緑</color>
  </char>
  <char>
    <name>オビ</name>
    <color>青</color>
  </char>
  <char>
    <name>モール</name>
    <color>赤</color>
  </char>
</root>