web-dev-qa-db-fra.com

Meilleure façon de convertir une chaîne en XmlNode en C #


Je voulais convertir une chaîne (qui est évidemment un xml) en un XmlNode en C # .Pendant la recherche sur le net, j'ai ce code.Je voudrais savoir si c'est un bon moyen de convertir une chaîne en XmlNode? Je dois effectuer cette conversion dans une boucle. Cela pose-t-il des problèmes de performance?

        XmlTextReader textReader = new XmlTextReader(new StringReader(xmlContent));
        XmlDocument myXmlDocument = new XmlDocument();
        XmlNode newNode = myXmlDocument.ReadNode(textReader);

Répondez, s'il vous plaît,

Merci
Alex

41
wizzardz

devrait être simple:

        string xmlContent = "<foo></foo>";
        XmlDocument doc = new XmlDocument();
        doc.LoadXml(xmlContent);
        XmlNode newNode = doc.DocumentElement;

ou avec LINQ si c'est une option:

        XElement newNode  = XDocument.Parse(xmlContent).Root;
91
BrokenGlass

La réponse acceptée ne fonctionne que pour un seul élément. XmlNode peut avoir plusieurs éléments tels que string xmlContent = "<foo></foo><bar></bar>"; (Exception: "Il existe plusieurs éléments racines");

Pour charger plusieurs éléments, utilisez ceci:

string xmlContent = "<foo></foo><bar></bar>";
XmlDocument doc = new XmlDocument();
doc.LoadXml("<singleroot>"+xmlContent+"</singleroot>");
XmlNode newNode = SelectSingleNode("/singleroot");
0
Evžen Černý