XML ファイル内の連続する空白は XML リーダーによって無視されるべきですか?

StackOverflow https://stackoverflow.com/questions/449532

  •  19-08-2019
  •  | 
  •  

質問

私の職場では、DOM を構築する独自の XML クラスがありますが、連続する空白をどのように処理すべきかわかりません。

例えば

<some-text>
Hello     World
</some-text>

これが DOM に読み込まれるとき、テキスト ノードには Hello と World の間に連続する空白を含めるべきでしょうか、それとも単に 1 つの空白に減らすべきでしょうか?

または、XML ソースを次のように記述する必要があります。

<some-text>
Hello &nbsp;&nbsp;&nbsp;&nbsp;World
</some-text>

そうでない場合はおそらくよりも?

役に立ちましたか?

解決

&nbsp;はHTMLエンティティであり、XML自体とは関係ありません。

しかし、あなたの質問に答えるために、私はそれを重要なものとして扱います。 HTML DOMでさえ、連続するスペースを重要なものとして扱いますが、視覚的に1つのスペースのみをレンダリングするだけです。 DOMでの表示方法と画面での表示方法は、まったく異なる2つです。

他のヒント

XML 仕様を見もせずに XML プロセッサを実装している人がいると聞くと、少し当惑します。

から XML 1.0 仕様、セクション 2.10 空白の処理」 (私のことを強調):

XMLドキュメントの編集では、「ホワイトスペース」(スペース、タブ、ブランクライン)を使用して、読みやすくするためのマークアップを際立たせることができることがよくあります。このような空白は、通常、ドキュメントの配信バージョンに含めることを意図していません。一方、配信されたバージョンに保存する必要がある「重要な」空白は、たとえば詩やソースコードで一般的です。

XMLプロセッサは、常にアプリケーションにマークアップされていないドキュメント内のすべての文字を渡す必要があります。 検証済みのXMLプロセッサは、これらの文字のどれが要素コンテンツに表示される空白を構成するかをアプリケーションに通知する必要があります。

XML:スペースという名前の特別な属性を要素に取り付けて、その要素では、ホワイトスペースをアプリケーションによって保存する必要があるという意図を示す場合があります。有効なドキュメントでは、この属性は、他の属性と同様に、使用する場合は宣言する必要があります。宣言された場合、値は「デフォルト」と「保存」の1つまたは両方である列挙型として指定する必要があります。例えば:...

編集:タグ内の空白は重要と見なされます(これはHTMLのようなものであるという私の最初の考えは間違っていました。最初にgoogle、後で質問に答えてください!)を参照してくださいこの説明

IMOこの場合、空白を重要なものとして扱うのは非常に自然に思えます。 DOMノードの値は、マークアップで使用した値と等しいと考えられます。

<!> quot;独自のXMLクラスがある場合は、<!> quot;それらを書いた人がこの質問に対する答えをまだ知らないなら、あなたはたぶんまだあなたがまだ発見していない多くの、より多くの、より多くの問題を抱えているでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top