2012-05-03 1 views
0

私はこのようなXMLファイルを持っている:CDATAセクションを持つxmlタグを含む複数のタグを使用できますか?

<bookstore> 

<book category="COOKING"> 
    <title lang="en">Everyday Italian</title> 
    <author>Giada De Laurentiis</author> 
    <year>2005</year> 
    <price>30.00</price> 
    <![CDATA[<<port>url= https://localhost:8080<port>]]> 
</book> 

私はこれを処理するときに、タグ全体をCDATAとして考えられていることを確認します。 CDATAを持つタグの中で他のタグを使用できますか?私はこれを行ったオンラインサンプルを見つけられませんでした。

+0

これは、 'CDATA'の全体点を打ち破ります。 – skaffman

答えて

2

まずに自分のラインを変更する必要がありCDATAセクションを含むポート要素を持っているしたい場合は、「タグ」とは何であるかは不明であるように見えます。この与えられた:開始タグ<a>と終了タグ</a>

<a><![CDATA[xyz]]></a> 

二つのタグがあります。 CDATAセクションはタグ内ではなく、2つのタグの間にあります。

「タグ全体がCDATAとみなされている」と言うと、「タグ間のコンテンツ全体がCDATAとみなされる」ということになります。はい、それは正しいです。そして、あなたが「CDATAを持つタグの中に他のタグを使用できますか?私はあなたが「CDATAセクション内にタグを置くことができますか?」と答えています。答えは「いいえ」です。CDATAセクションを使用する唯一のポイントは、セクション内の山括弧がマークアップとして認識されないようにすることです。

+0

角括弧とアンパサンド。 – Quentin

+0

私は私の質問を言い換えると思います。上記の例が有効なXMLであるかどうかを知りたいと思います。ブックタグには、タイトル、著者、年、価格がCDATAセクションとともに表示されます。それは有効ですか? – user1373651

+0

はい、あなたの例は整形式です。しかし、XMLパーザにそれを投げてエラーが報告されているかどうかを確認することで、より簡単かつ確実にそれを見つけることができます。 –

1

CDATAセクション内のすべてがパーサーによって無視されます。

<<port>url= https://localhost:8080<port>は、タグを含むXMLではなくプレーンテキストと見なされます。

あなたが

<port><![CDATA[url= https://localhost:8080]]></port>

0

definition of a CDATA sectionを見ると、<![CDATA[と閉じる]]>タグの間のすべてのコンテンツはテキスト入力とみなされ、その情報はまったく処理されません。

ここで、CDATAセクション内に有効なXMLを作成している場合は、そのドキュメントを個別に処理することができます。

+0

Mitchel、私の質問は、どのようにXMLのCDATAセクションと共に存在するデータ/タグが扱われ、CDATAセクション自体の内部ではないということでした。私の例では、タグ、著者、タイトルなどはどのように扱われますか? – user1373651

関連する問題