2010-12-13 4 views

Antwort

5

aus Wikipedia

A CDATA-Abschnitt mit der folgenden Sequenz beginnt:

<![CDATA[ 

und endet mit dem ersten Auftreten der Sequenz:

]]> 

Alle Zeichen zwischen diesen beiden Sequenzen umschlossen werden als Zeichen interpretiert, nicht als Markup- oder Entity-Referenzen. Zum Beispiel in einer Zeile wie dieser:

<sender>John Smith</sender> 

Die öffnenden und schließenden "Absender" -Tags werden als Markup interpretiert. Wenn jedoch wie folgt geschrieben:

<![CDATA[<sender>John Smith</sender>]]> 

dann wird der Code gleich interpretiert, als ob es so geschrieben worden war:

&lt;sender&gt;John Smith&lt;/sender&gt; 

Schauen Sie sich die Wiki Seite für weitere Details.

3

Siehe CDATA at Wikipedia:

In einem XML-Dokument oder externen analysierten Entity, ein CDATA-Abschnitt ein Abschnitt von Elementinhalt ist, der markiert ist für die Parser als nur Zeichendaten zu interpretieren, nicht Markup.

Das bedeutet, dass der Parser keine Daten interpretiert, die in <![CDATA[ ]]> enthalten sind.

Nehmen wir an, Sie möchten HTML als Text in einem XML-Dokument speichern. Das ist falsch:

<root> 
    <myhtml> 
     <div><b>Foo bar</b></div> 
    </myhtml> 
</root> 

Der Parser würde versuchen <div><b>Foo bar</b></div> zu analysieren und DOM-Elemente zu erstellen. Es würde in diesem Beispiel funktionieren, aber nicht für Dokumente, die einer DTD entsprechen.

Stattdessen wollen wir dies:

<root> 
    <myhtml> 
     <![CDATA[ <div><b>Foo bar</b></div> ]]> 
    </myhtml> 
</root> 

und <div><b>Foo bar</b></div> wird der Inhalt eines Textknoten werden.

0

Es ermöglicht literalen Text, einschließlich der meisten xml "Sonderzeichen". Es ist nicht Teil der "äußeren" XML-Daten, sondern nur Text.

0

Alles in einem CDATA-Abschnitt wird vom Parser ignoriert.

Zum Beispiel Bild, das Sie Javascript in einem XML-Dokument senden möchten, da es höchstwahrscheinlich spezielle Zeichen enthalten wird (<,>, &, etc) der XML-Parser wird Fehler erzeugen.

Mit diesem Tag wird der Parser es nicht analysieren und es werden keine Fehler erzeugt.

Verwandte Themen