2

私の仕事では、DOMを構築する独自のXMLクラスがありますが、連続する空白をどのように処理する必要があるかわかりませんか?

例えば

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

これをDOMに読み込む場合、テキストノードにHelloとWorldの間に連続する空白を含める必要がありますか、それとも1つのスペースに減らす必要がありますか?

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

<一部のテキスト>
こんにちは&nbsp;&nbsp;&nbsp;&nbsp; World
</ some-text>

またはそうでない場合は&nbsp; おそらく&#32;より ?

4

5 に答える 5

5

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

XML 1.0 仕様、セクション 2.10 空白処理から" (強調鉱山):

XML ドキュメントの編集では、「空白」 (スペース、タブ、空白行) を使用してマークアップを区切って読みやすくすると便利なことがよくあります。通常、このような空白は、配布されたバージョンのドキュメントに含めることを意図していません。一方、配信されたバージョンで保持されるべき「重要な」空白は、詩やソースコードなどでよく見られます。

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

xml:space という名前の特別な属性を要素に付加して、その要素内の空白をアプリケーションで保持する必要があることを示すことができます。有効なドキュメントでは、この属性を使用する場合は、他の属性と同様に宣言する必要があります。宣言するときは、値が「default」と「preserve」のいずれかまたは両方である列挙型として指定する必要があります。例えば: ...

于 2009-01-16T11:09:07.830 に答える
3

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

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

于 2009-01-16T05:02:38.507 に答える
2

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

于 2009-01-16T04:47:52.547 に答える
1

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

于 2009-01-16T04:50:50.903 に答える
0

あなたが「独自の XML クラスを持っており」、そのクラスを作成した人がこの質問に対する答えをまだ知らない場合、まだ発見していない多くの問題を抱えている可能性があります。

于 2009-01-17T02:47:11.567 に答える