web-dev-qa-db-ja.com

XMLファイルに改行(改行)を追加する方法は?

XMLファイルがあり、このようなテキスト「Sample Text 123」に新しい行を作成したい

Sample
Text 123

意味することはすべて試しました&#xA&#xD\nしかし、何も動作しません:

    <?xml version="1.0" encoding="UTF-8" ?>
    <item>
        <text>Address</text>
        <data>
            Sample &#xA; Text 123
        </data>
    </item>
18
Christian

Anewline(akaline breakまたは行末[〜#〜] eol [〜#〜])は特殊文字ですまたは、テキスト行の終わりを示す文字シーケンス。使用される正確なコードは、オペレーティングシステムによって異なります。

LF:    Unix
CR:    Mac OS up to version 9
CR+LF: Windows, DOS

&#xA;をラインフィード(LF)または&#xD;をキャリッジリターン(CR)に使用できます。XMLパーサーは、解析されたテキストをアプリケーションに渡すときに、それぞれの文字に置き換えます。これらは例に示すように手動で追加できますが、文字列内にプログラムで改行を追加する必要がある場合に特に便利です。

  • 一般的なプログラミング言語:
    • LF"&#xA;"
    • CR"&#xD;"
  • XSLT:
    • LF<xsl:text>&#xA;</xsl:text>
    • CR<xsl:text>&#xD;</xsl:text>

または、XMLですぐに表示したい場合は、そのまま文字どおりに挿入します。

<?xml version="1.0" encoding="UTF-8" ?>
<item>
    <text>Address</text>
    <data>
        Sample
        Text 123
    </data>
</item>

改行がまだ表示されませんか?

アプリケーションが改行を含むテキストをどのように解釈するかは、それ次第であることに注意してください。改行が無視されていることに気付いた場合、アプリケーションは改行で区切られたテキストを自動的に一緒に実行する可能性があります。

たとえば、HTMLブラウザは改行を無視します(また、複数のスペースが統合されるようにテキスト内のスペースを正規化します)。 HTMLの行を分割するには、

  • use <br/>;または
  • 囲まれたテキストの後にデフォルトで改行を引き起こすdivpなどの要素、またはデフォルトで通常はデフォルトで行われるpreなどの要素でブロックをラップします空白と改行を保持します。または
  • white-space などのCSSスタイルを使用して、改行のレンダリングを制御します。

XMLアプリケーションが協力していませんか?

XMLアプリケーションが改行を尊重せず、アプリケーションの処理モデル内での作業が役に立たない場合、別の可能な手段はCDATAを使用してXMLパーサーに通知することです改行を含むテキストを解析します。

<?xml version="1.0" encoding="UTF-8" ?>
<item>
    <text>Address</text>
    <data>
        <![CDATA[Sample
                 Text 123]]>
    </data>
</item>

または、HTMLマークアップがダウンストリームで認識される場合:

<?xml version="1.0" encoding="UTF-8" ?>
<item>
    <text>Address</text>
    <data>
        <![CDATA[Sample <br/>
                 Text 123]]>
    </data>
</item>

これが役立つかどうかは、XMLが通過するXML処理のパイプラインの1つ以上のステージのアプリケーション定義のセマンティクスに依存します。

ボトムライン

Anewline(akaline breakまたは行末[〜#〜] eol [〜#〜])を追加できますXMLの文字によく似ていますが、

  • 異なるOS規則
  • 異なるXMLアプリケーションセマンティクス
24
kjhughes