1. ホーム

[解決済み】javaでのDOMパースにおける正規化 - どのように機能するのでしょうか?

2022-04-02 21:20:13

質問

のDOMパーサーのコードで、以下の行を見ました。 このチュートリアル .

doc.getDocumentElement().normalize();

なぜこのような正規化を行うのでしょうか?

を読みました。 ドキュメント が、一言も理解できなかった。

<ブロッククオート

このNodeの下にあるサブツリーの全深さにあるすべてのTextノードを配置します。

では、このツリーがどのようなものか、どなたか(できれば画像で)見せていただけませんか?

なぜ正規化が必要なのか、説明できる人はいますか?

正規化しないとどうなる?

解決方法は?

残りの文章は

<ブロッククオート

ここで、構造(要素、コメント、処理命令、CDATAセクション、実体参照など)だけがTextノードを区切り、つまり、隣接するTextノードや空のTextノードは存在しない。

これは基本的に、次のようなXML要素

<foo>hello 
wor
ld</foo>

は、非正規化されたノードではこのように表現される可能性があります。

Element foo
    Text node: ""
    Text node: "Hello "
    Text node: "wor"
    Text node: "ld"

正規化すると、ノードは次のようになります。

Element foo
    Text node: "Hello world"

また、属性についても同様です。 <foo bar="Hello world"/> やコメントなど。