XML ↔ JSON コンバーター
変換
ほとんどのコンバーターが失うものを保持する双方向XML/JSONコンバーター: 属性·混合コンテンツ·繰り返し要素。属性は `@`(設定可能)プレフィックスキーになる → `<book id="1">` は `{"@id": "1"}`。繰り返し子要素は配列に折りたたまれる。属性と並ぶテキストコンテンツは `#text` キー(こちらも設定可能)に入る。XML側はブラウザネイティブ `DOMParser` 使用 — ブラウザが `application/xml` 応答に使うコードパスと同じ → 名前空間·エンティティ·CDATAすべて動作。JSON側は同じ規約を逆順でラウンドトリップ。
—
使い方
- 方向を選択。XML(またはJSON)を貼り付け — サンプルデータは1クリック。
- 特定スキーマ(`x2js`·`fast-xml-parser`·カスタム)をターゲットにする場合は属性プレフィックスとテキストキーを調整。
- JSON→XMLはルート要素名を設定し `<?xml ... ?>` 宣言をトグル。準備できたらコピー。
よくある質問
- なぜ属性プレフィックス?
- JSONは属性と子要素をネイティブに区別しない。プレフィックス(`@`·`_` または好みのもの)でラウンドトリップが無損失 → XML→JSON→XML 変換しても同じドキュメント。規約なしでは属性と子要素名が衝突。
- 混合コンテンツ(`<p>hello <b>world</b>!</p>`)の処理?
- 部分的に。純粋テキストは文字列、テキストを伴う要素子は子の隣に `{ #text: '...' }`。インターリーブされたテキストと要素(`hello <b>world</b>!` のような)は `#text` キーに結合されたテキストとして折りたたまれる — ラウンドトリップするが元の順序は失われる。混合コンテンツの多いドキュメント(HTML·DocBook)には専用パーサーが良い。