2

xmlで\line-feed文字と\carriage-return文字を処理する際に問題が発生しました。http://www.w3.org/TR/REC-xml/#sec-line-endsによると、「\ n \r」または単独の「\r」シーケンスを次のように置き換えるには、xmlプロセッサが必要です。 「\n」。
仕様では、これは「外部で解析されたエンティティ」を処理するための動作である必要があると述べられていますが、これは要素内のCDATAセクションにも適用されますか?
ありがとうございました、

ミケーレ

たとえば、msxmlライブラリは、cdataセクションにあるかどうかに関係なく、すべての\ n\r"または単独の"\r"シーケンスを"\n"に変換すると確信しています。

4

2 に答える 2

3

あなたがリンクしているセクションからの文章を引用します(私の強調):

アプリケーションのタスクを単純化するために、XMLプロセッサは、2文字のシーケンス#xD #xAと任意の単一の#xA文字に対して#xAが続かないxD。

XMLプロセッサは解析前にこれを行うため、ドキュメントのどの部分がCDATAセクションであるかはまだわかりません。したがって、CDATAセクションにあるかどうかに関係なく、置換が行われます。

これらの文字を確実に保持するには、XMLドキュメントに
エンティティ
として書き込む必要があります。

于 2010-05-12T09:52:36.260 に答える
1

はい-プロセッサが準拠するには、CDATAセクションの「\ n\r」または「\r」を「\n」に置き換える必要があります。XMLドキュメント内のCDATAセクションはすべて、「解析」されるドキュメントエンティティの一部になります。解析されていないエンティティの例はここにあります。

于 2010-05-12T09:40:08.750 に答える