実体参照・CDATA・入れ子の子要素
名前に & を含み、メモを CDATA で書き、住所の中に city を入れ子にした 2 人の利用者の例です。実体参照と CDATA が文字に直り、入れ子が addr.city の列になることを確かめます。
入力
XML
<users><user><name>A & B</name><note><![CDATA[<b>x</b>]]></note><addr><city>東京</city></addr></user><user><name>C</name><note>n</note><addr><city>大阪</city></addr></user></users>
繰り返し要素の名前(空欄なら自動)
(空)
結果
エラー 0 件・警告 0 件・情報 1 件
指摘(エラー・警告・情報)
- 情報 出力全体 文字の前後の空白は取り除いています。名前空間の接頭辞(ns:name)は名前の一部としてそのまま列名に使います。
| 繰り返し要素 | <user> |
|---|---|
| 探した範囲 | <users> の子 |
| 行の数 | 2 行 |
| 列の数 | 3 列 |
1 要素 1 行の表
| name | note | addr.city |
|---|---|---|
| A & B | <b>x</b> | 東京 |
| C | n | 大阪 |
検算(この結果になる理由)
XML 1.0 の定義済み実体 & は & になり、CDATA の中の <b>x</b> は記号のまま値になります。addr の中の city は addr.city の列です。user が 2 回繰り返すので 2 行、列は name・note・addr.city の 3 列です。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- XML Schema(XSD)による検証、XPath の指定、XSLT による変換はしません。繰り返し要素は名前だけで決めます。
- DTD は読みません。DTD の内部で定義した実体は展開せず、&名前; のまま出力します。
- 文字の前後の空白は取り除きます。要素の途中に文字が混ざる文書(HTML のような文章)の細かい構造は再現できません。
- ファイルは UTF-8 として読みます。Shift_JIS などほかの文字コードのファイルは文字化けすることがあります。
ご利用にあたって
- XML の中身によっては、列が多くなり、表計算ソフトで開いたときに見づらくなることがあります。
- 大きな XML はお使いの端末の性能によって処理に時間がかかることがあります。