1. ホーム
  2. xml

[解決済み】XMLファイルに改行を追加する方法は?

2022-02-16 12:55:57

質問内容

XMLファイルがあり、テキストに改行を入れたいのですが サンプルテキスト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>

解決方法は?

A 改行 (別名 改行 または エンドオブライン , EOL ) は、テキストの行末を示す特殊文字または文字列です。 使用される正確なコードは、オペレーティングシステムによって異なります。

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

を使用することができます。 &#xA; は改行(LF)または &#xD; 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で改行するには

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

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つまたは複数のステージのアプリケーション定義のセマンティクスに依存します。

ボトムライン

A 改行 (別名 改行 または エンドオブライン , EOL ) は、XML の他の文字と同様に追加することができますが、次の点に注意してください。

  • OSによって異なる慣習
  • XMLアプリケーションのセマンティクスが異なる