recorrer read examples .net xml xelement

.net - read - Cómo agregar una cadena Xml existente en un XElement



xelement to string c# (3)

¿Cómo agregar una cadena Xml existente en un XElement?

Este codigo

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

por supuesto produce esto

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

pero necesito esto

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

¿Algunas ideas?


Esto debería funcionar:

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


La respuesta de Sani Singh Huttunen me puso en el camino correcto, pero solo permite un elemento de resultado en el elemento de resultados .

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

falla con la excepción System.Xml.XmlException

Hay varios elementos raíz.

Resolví esto moviendo el elemento de resultados a la cadena literal

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

de modo que solo tenía un elemento raíz y luego agregaba la cadena analizada directamente al elemento principal, como esto:

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


Ver mi respuesta en ¿Existe un XElement equivalente a XmlWriter.WriteRaw?

Esencialmente, reemplace un marcador de posición para el contenido solo si sabe que ya es un XML válido .

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

Este método también puede ser más rápido que analizarlo con XElement.Parse .