Frage

Wie eine vorhandene XML-Zeichenfolge in eine XElement hinzufügen?

Dieser Code

        var doc = new XDocument(
            new XElement("results", "<result>...</result>")
        );

natürlich produziert dieses

  <results>&lt;result&gt;&lt;/result&gt;</results>

, aber ich brauche diese

  <results><result>...</result></results>

Irgendwelche Ideen?

War es hilfreich?

Lösung

Dies sollte funktionieren:

var xmlString = "<result>sometext</result>";
var xDoc = new XDocument(new XElement("results", XElement.Parse(xmlString)));

Andere Tipps

Die Antwort von Sani Singh Huttunen hat mich auf dem richtigen Weg, aber es kann immer nur ein Ergebnis -Element in den Ergebnisse -Element.

var xmlString = "<result>sometext</result><result>alsotext</result>";

nicht mit der System.Xml.XmlException

  

Es gibt mehrere Root-Elemente.

Ich löste dies durch die Ergebnisse bewegen -Element auf dem Stringliteral

var xmlString = "<results><result>sometext</result><result>alsotext</result></results>";

, so dass sie hatten nur ein Wurzelelement und dann hinzugefügt, um die analysierte Zeichenfolge direkt an das übergeordnete Element, wie folgt aus:

parent.Add(XElement.Parse(xmlString));

Siehe meine Antwort auf Gibt es ein XElement Äquivalent XmlWriter.WriteRaw?

Im Wesentlichen einen Platzhalter für den Inhalt ersetzen nur, wenn Sie es bereits gültige XML wissen .

var d = new XElement(root, XML_PLACEHOLDER);
var s = d.ToString().Replace(XML_PLACEHOLDER, child);

Dieses Verfahren auch schneller sein kann als es mit XElement.Parse Parsen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top