100% ローカル — データがブラウザの外に出ることはありません

YAMLをXMLに変換|そのまま通る要素名に直して書き出します

YAMLをXMLに変換します。要素名にできないキーは直され、ぶつかったキーには接尾辞が付くので、手直しをしなくても、どのXMLパーサでもそのまま一度で解析が通ります。

高速 プライベート Cookieゼロ
インデント

YAML 入力

XML 出力

このツールの動作

キーが要素に、値がその中身になります。

user:
  name: Ada
  born: 1815
<user>
  <name>Ada</name>
  <born>1815</born>
</user>

根に複数のキーがある文書は <root> で包みます。XML の根要素はちょうど一つと決まっているためです。

キーは修復する。壊れたまま出さない

XML の要素名に空白は使えず、数字で始めることもできず、使える文字も決まっています。

キー要素
user name<user_name>
2nd<_2nd>
user-name<user-name>(もともと適法)

そのまま書けば、XML に見えて、どの解析器も受け付けないファイルになります。ずっと後になって、別の場所で失敗する類の出力です。

同じ名前に修復される二つのキー

user name と user_name はどちらも user_name になろうとします。二つ目は user_name_1 になります。

もう一つの道は、一方に他方を上書きさせることです。値が何も言わずに消えるのは、この道具が避けようとしていることそのものです。

並びは繰り返し要素になる

items:
  - 1
  - 2
<items>
  <item>1</item>
  <item>2</item>
</items>

XML に並びという型はありません。繰り返しこそが並びです。item という名前はどこかから持ってくるしかなく、YAML はそれを与えてくれません。

属性が必要なら

"@_id" と書いたキーは属性に、"#text" は要素のテキストになります。

"@_id": 1
"#text": hello
<root id="1">hello</root>

XML から YAML への方向が出す約束と同じなので、往復しても形は保たれます。

プライバシー

すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。

よくある質問

要素名として妥当でないキーはどうなりますか。
修復します。XML の名前に空白は使えず、数字で始めることもできません。`user name` は `user_name` に、`2nd` は `_2nd` になります。そのまま出せば、どの解析器も読めない文書ができます。開こうとするまで問題なく見えるファイルです。
二つのキーが同じ名前に修復されたら。
`user name` と `user_name` はどちらも `user_name` になるため、二つ目に接尾辞を付けて `user_name_1` とします。一つにまとめれば値が黙って消えます。このページ全体が避けようとしているのは、まさにその事故です。
要素ではなく属性を作れますか。
作れます。`"@_id"` と書いたキーは属性 `id` に、`"#text"` と書いたキーは要素のテキストになります。XML から YAML への方向が出すのと同じ約束なので、YAML に変換して戻した文書は同じ形に戻ります。

関連ツール