2009-08-07 10 views
2

Ich habe eine Frage für XML-Dokument spezielle Zeichen, ich verwende & in einem der Wert des Elements in XML und TXMLDoc Delphi Parser beschweren sich darüber.XML-Dokumente und & char?

ich für einige XML-Parsing-Optionen suchen, aber keiner von ihnen in Bezug auf Sonderzeichen,

irgendwelche Ideen?

Beispiel:

<Configuration> 
     <Configuration_item> 
     <view_name value="some view & name"/> 

.... 

Regards, Mika

Antwort

8

Verwenden &amp; ein Und-Zeichen darzustellen. Der Grund hierfür ist, dass & ein Sonderzeichen in XML ist - speziell das Zeichen, das den Beginn einer XML-Entität angibt, mit der Zeichen im Inhalt angegeben werden, die (ironischerweise) ansonsten speziell/komplex wären Figuren.

<view_name value="some view &amp; name"/> 

Andere allgemeine XML-Entitäten:

  • "ist &quot;
  • < ist &lt; (kurz für weniger als)
  • ist &gt; (kurz für Größer als)

Für weitere Informationen:

http://www.xml.com/pub/a/2001/01/31/qanda.html

+0

wow man, das war schnell, ich war noch Post bearbeiten, und korrigieren! Danke! – blackuprise

4

&, < und > sind die Sonderzeichen Sie aufpassen möchten werden, und innerhalb eines Attributs auch ". & ist eine Art wie das XML-Escape-Zeichen.

Sie können somit entwertet werden:

  • & =>&amp;
  • < =>&lt;
  • > =>&gt;
  • " =>&quot;

(Eigentlich und seltsamerweise müssen Sie nicht innerhalb eines Attributs > nur < entkommen. Wenn Sie ' anstelle von " für Ihre Attributtrennzeichen verwenden, müssen Sie " als nicht als ' als &apos; entkommen. Details finden Sie in der XML-Spezifikation unter AttValue.)

2

Dav und lavio haben Recht.

Wenn Sie einen Textblock mit vielen Sonderzeichen haben, können Sie ihn stattdessen in CDATA einschließen.

+0

HINWEIS: Sie können CDATA nicht für Attributwerte verwenden, nur für Textblöcke zwischen Tags. –