1261 Stimmen

Was bedeutet <![CDATA[]]> in XML?

Ich finde das oft seltsam CDATA Tag einfügen XML Dateien:

<![CDATA[some stuff]]>

Ich habe festgestellt, dass dies CDATA Tag kommt immer am Anfang, und dann folgen einige Dinge.

Aber manchmal wird sie genutzt, manchmal nicht. Ich nehme an, es soll markieren, dass some stuff sind die "Daten", die danach eingefügt werden. Aber welche Art von Daten ist some stuff ? Ist nicht alles, was ich in XML-Tags schreibe, eine Art von Daten?

2voto

randomness Punkte 1299

Bei den Cdata handelt es sich um Daten, die an einen XML-Parser weitergegeben werden können und dennoch nicht als XML interpretiert werden.

Zum Beispiel: Sie haben eine XML-Datei, die ein Frage/Antwort-Objekt kapselt. Solche offenen Felder können beliebige Daten enthalten, die nicht unbedingt unter den Basisdatentyp oder die in Xml definierten benutzerdefinierten Datentypen fallen. Zum Beispiel. Ist dies ein korrekter Tag für einen Xml-Kommentar? .-- Möglicherweise müssen Sie es so übergeben, wie es ist, ohne dass es vom XML-Parser als weiteres untergeordnetes Element interpretiert wird. Hier kommt Cdata zu Ihrer Rettung. Durch die Deklaration als Cdata weisen Sie den Parser an, die Daten nicht als Xml zu behandeln (auch wenn es so aussehen mag).

1voto

Patanjali Punkte 749

Beachten Sie, dass die CDATA Konstrukt wird nur benötigt, wenn der Text direkt in die XML-Textdatei eingefügt wird.

Das heißt, Sie brauchen nur die CDATA wenn Sie den XML-Text von Hand eintippen oder direkt programmatisch erstellen.

Jeder Text, der über eine DOM-Prozessor-API oder SimpleXML eingegeben wird, wird automatisch escaped, damit er nicht gegen die XML-Inhaltsregeln verstößt.

Dessen ungeachtet kann es Zeiten geben, in denen die Verwendung von CDATA kann die Textgröße reduzieren, die andernfalls mit allen kodierten Entitäten erzeugt werden würde, z. B. für css in style Tags oder javascript in script Tags, wobei viele Sprachkonstrukte Zeichen in HTML|XML verwenden, wie < y > .

0voto

Johan Punkte 4928

Wird in der Regel verwendet, um benutzerdefinierte Daten, wie Bilder oder Tondaten, in ein XML-Dokument einzubetten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X