58 votes

J'ai besoin de convertir une chaîne XML en un XmlElement

Je cherche le moyen le plus simple de convertir une chaîne de caractères contenant du XML valide en un fichier de type XmlElement en C#.

Comment pouvez-vous transformer cela en un XmlElement ?

<item><name>wrench</name></item>

96voto

Aliostad Points 47792

Utilisez ça :

private static XmlElement GetElement(string xml)
{
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(xml);
    return doc.DocumentElement;
}

Attention ! Si vous avez besoin d'ajouter cet élément à un autre document, vous devez d'abord l'importer à l'aide de la fonction ImportNode .

19voto

johnrock Points 51

Supposons que vous ayez déjà un XmlDocument avec des noeuds enfants, et que vous ayez besoin d'ajouter un élément enfant supplémentaire à partir d'une chaîne.

XmlDocument xmlDoc = new XmlDocument();
// Add some child nodes manipulation in earlier
// ..

// Add more child nodes to existing XmlDocument from xml string
string strXml = 
  @"<item><name>wrench</name></item>
    <item><name>screwdriver</name></item>";
XmlDocumentFragment xmlDocFragment = xmlDoc.CreateDocumentFragment();
xmlDocFragment.InnerXml = strXml;
xmlDoc.SelectSingleNode("root").AppendChild(xmlDocFragment);

Le résultat :

<root>
  <item><name>this is earlier manipulation</name>
  <item><name>wrench</name></item>
  <item><name>screwdriver</name>
</root>

14voto

dtb Points 104373

Utilisez XmlDocument.LoadXml :

XmlDocument doc = new XmlDocument();
doc.LoadXml("<item><name>wrench</name></item>");
XmlElement root = doc.DocumentElement;

(Ou si vous parlez de XElement, utilisez XDocument.Parse :)

XDocument doc = XDocument.Parse("<item><name>wrench</name></item>");
XElement root = doc.Root;

2voto

Florian Points 320

Vous pouvez utiliser XmlDocument.LoadXml() pour ce faire.

Voici un exemple simple :

XmlDocument xmlDoc = new XmlDocument(); 
xmlDoc.LoadXml("YOUR XML STRING");

0voto

Nandagopal T Points 1115

J'ai essayé avec ce snippet, j'ai eu la solution.

// Sample string in the XML format
String s = "<Result> No Records found !<Result/>";
// Create the instance of XmlDocument
XmlDocument doc = new XmlDocument();
// Loads the XML from the string
doc.LoadXml(s);
// Returns the XMLElement of the loaded XML String
XmlElement xe = doc.DocumentElement;
// Print the xe
Console.out.println("Result :" + xe);

S'il y a un autre moyen meilleur/efficace de mettre en œuvre la même chose, veuillez nous le faire savoir.

Merci et bonne chance

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X