web-dev-qa-db-ja.com

HTMLコンテンツをXMLドキュメントに挿入できますか?

HTMLコンテンツをXMLドキュメントに挿入する必要がありますが、これは可能ですか、またはHTMLコンテンツは、たとえばBASE64でエンコードする必要がありますか?

66
newbie

HTMLコンテンツを含めることができます。可能性の1つは、前述のようにBASE64でエンコードすることです。

もう1つは、 CDATA タグを使用している可能性があります。

CDATAを使用した例:

<xml>
    <title>Your HTML title</title>
    <htmlData><![CDATA[<html>
        <head>
            <script/>
        </head>
        <body>
        Your HTML's body
        </body>
        </html>
     ]]>
    </htmlData>
</xml>

ご注意ください:

CDATAの開始文字シーケンス:<![CDATA[

CDATAの終了文字シーケンス:]]>

125

htmlコンテンツにCDATA要素を含める必要がない限り、CDATA要素にHTMLを含めることができます。そうでない場合は、XMLエンティティをエスケープする必要があります。

<element><![CDATA[<p>your html here</p>]]></element>

VS

<element>&lt;p&gt;your html here&lt;/p&gt;</element>
20
zzzzBov

BASE64エンコードの目的は、バイナリデータを取得し、それを文字列に保持できるようにすることです。そのメリットには、結果のサイズの増加というコストがかかります(4対3の比率だと思います)。 2つの解決策があります。データが整形式のXMLであることがわかっている場合は、直接含めます。もう1つの優れたオプションは、XML内の要素内のCDATAセクションにHTMLを含めることです。

8
Rich

こちらをご覧ください。

CDATAセクション内のテキストはパーサーによって無視されます。

http://www.w3schools.com/xml/dom_cdatasection.asp

これは、XMLの基本を理解するのに役立ちます

1
loyola