2009-04-27 9 views
0

I XML erschaffe zur Laufzeit sein Schema ist wieEinfache XML Frage

<Item> 
    <Content>Hi</Content> 
</item> 

Das Problem ist, wenn ich zu diesem Tag bin versucht

<Item> 
    <Content><strong>Hi<strong></Content> 
</item> 

Wie einige HTML-Inhalte zu speichern, dieses Problem zu lösen

Vielen Dank im Voraus

+0

Welches Problem ist das? –

+0

Sein HTML ist möglicherweise nicht vollständig xml parsable? Ich meine, wenn es richtig ist xhtml wird es in Ordnung sein. – ewanm89

+0

-1 für den uninformativen Titel – bortzmeyer

Antwort

0

Der HTML-String muß richtig entgangen sein, bevor Sie es in der das XML. Wenn Sie .NET hier verwenden, sind some ways es zu tun.

0

Das weniger als Tag (<) muss unter Verwendung von & lt maskiert werden; und gleiche gilt für die >-Tag (& gt;)

+0

Vergessen Sie nicht das kaufmännische Und-Zeichen selbst ('&'), das zuerst durch '&' ersetzt werden muss. –

1

Sie können den HTML-Inhalt in einem CDATA-Abschnitt einzubetten:

<Item><![CDATA[ <Content><strong>Hi</strong></Content> ]]></item> 
2

Die richtige Antwort ist nicht embed-Tags in XML. Die XML sollte nur die Daten definieren, der Parser sollte sie in die richtige Markierung z. Alle Artikel-> Inhalt in . Die andere Lösung besteht darin, die Tags mithilfe von XML-Escapes zu umgehen: &lt; und &gt;.

2

Ich nehme an, dass Sie ein Schema haben, das es einem Item-Element erlaubt, ein Content-Element zu enthalten und dass das Content-Element nur Text oder CDATA oder ähnliches enthalten kann. In diesem Fall haben Sie zwei Möglichkeiten.

Erstens könnten Sie die HTML irgendwie entkommen. Entweder können Sie einen CDATA-Abschnitt verwenden, wie oben von Fredrik vorgeschlagen. Alternativ könnten Sie der Belichtungsreihe wie oben entkommen. Mit beiden Lösungen können Sie den Inhalt von Content weiterhin als Text behandeln. Auf diese Weise können Sie ein einfaches Inhaltsmodell für Ihr Element erstellen.

Alternativ können Sie Ihr Schema so erweitern, dass xhtml-Elemente als Teil des Inhaltselements zulässig sind. Ich schlug einen Weg zu diesem here vor. Natürlich, wenn Ihr Inhalt html nicht xhtml ist, wird dies nicht funktionieren.

Wirklich, die Wahl kommt, ob Sie in der Lage sein werden, das eingebettete HTML als Teil Ihres xml zu analysieren oder nicht. Wenn Sie wollen, dass es Text ist, entkommen Sie es. Wenn Sie es analysieren möchten, erweitern Sie Ihr Schema.

+0

Einverstanden. Alles hängt davon ab, was Sie damit machen wollen. Es könnte legitime Verwendungen für beide Methoden geben. –