2010-12-09 9 views
4

Ich habe eine Zeichenfolge aus XML mit einem Apostroph, der zu ' maskiert werden sollte und es ist nicht.Escape ein Apostroph aus einer Datenbindung XML

<city place="park's place"/> 

In html packe ich den Wert.

<span datafld="place"></span> 

muss ich den Wert in place "Park &apos; s place" und nicht Park Ort sein. Derzeit zeigt es "Park's Place".

Ich habe eine Menge Zeit damit verbracht, eine Antwort zu finden, und ich kann keinen finden.

Dieses Codebeispiel ist schlecht zusammengehackt, da ich keinen Originalcode anzeigen darf.

Danke.

Edit: Dies ist auf einer XHTML-Seite mit Javascript.

+1

Sie sagen uns nichts über die Sprache, Plattform oder APIs, die Sie verwenden. Ich bin mir nicht einmal sicher, was dein Problem ist. –

+0

Warum sollte es entkommen? Das würde genau die gleichen Daten ergeben, aber mit 5 zusätzlichen Bytes und weniger Lesbarkeit. – Quentin

+0

Und wenn Sie ein 'datafld' Attribut haben, dann haben Sie kein XHTML. – Quentin

Antwort

2

Im XML "Datenmodell" sind alle Werte nicht klassifiziert.

place="park's place" 

oder:

place="park&apos;s place" 

oder:

place="park&#39;s place" 

, wenn Sie einen XML-Parser (oder den DOM) Sie erhalten „Parks verwenden Also, ob das Attribut als angegeben Ort". (Dinge wie "innerHTML" sind eine Ausnahme von dieser allgemeinen Regel.)

Wenn Sie das mit einer anderen Zeichenfolge vergleichen müssen, die eine andere Ebene der Entweichen hat, müssen Sie entweder die Zeichenfolge aus dem DOM zu entkommen, oder Sie müssen die andere Zeichenfolge entschlüsseln. Es ist sehr ähnlich, wenn Sie eine Messung in Metern mit einer in Fuß vergleichen würden: Sie müssen in eine gemeinsame Maßeinheit konvertieren.

Ich würde mit der Unescaping-Ansatz gehen, wenn Sie können. Wenn das nicht möglich ist, müssen Sie sicherstellen, dass Sie überall konsequent entkommen, was schwierig sein kann. Beachten Sie, dass ich Ihnen drei verschiedene Wege aufgezeigt habe, wie Sie legal diese bestimmte Zeichenfolge umgehen können - und es gibt viele, viele mehr.

+0

Was Sie sagen, geschieht nicht auf meiner Seite. Ich stelle "park" ' 's Platz in die Datenbank ein, um das XML zu bilden, und es zeigt noch" Park ''' s Stelle "in der Spannweite, die oben gezeigt wird.Wie auch immer ich die Zeichenfolge formiere, es kommt aus der Datafeld genau so heraus, ohne zu entkommen oder nicht zu scannen. – Primetime

+0

Ich spreche über die Verwendung von DOM oder SAX oder etwas ähnliches zum Lesen von XML (ich nehme an, Sie verwenden das DOM, da Sie erwähnt haben, dass Sie Javascript verwenden). Das Schreiben von XML ist eine ganz andere Sache. Sie haben nicht gesagt, was Sie verwenden, um dieses XHTML zu generieren, aber im Allgemeinen sollten Sie sich Gedanken darüber machen, welche Zeichen in Ihrem XML maskiert sind. Sie sollten stattdessen Dinge wie das DOM verwenden, das sie für Sie entschlüsselt. –

Verwandte Themen