web-dev-qa-db-fra.com

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

Je cherche le moyen le plus simple de convertir une chaîne contenant du XML valide en un objet XmlElement en C #.

Comment pouvez-vous transformer cela en XmlElement?

<item><name>wrench</name></item>
56
Dean

Utilisez ceci:

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

Il faut se méfier!! Si vous devez d'abord ajouter cet élément à un autre document, vous devez l'importer à l'aide de ImportNode.

93
Aliostad

Supposons que vous disposiez déjà d'un XmlDocument avec des nœuds enfants, et que vous ayez besoin d'ajouter plus d'élément enfant à partir de la 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>
19
johnrock

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;
14
dtb

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

Voici un exemple simple:

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

J'ai essayé avec cet extrait de code, j'ai 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);

Si vous avez un autre moyen meilleur/efficace de le mettre en œuvre, veuillez nous le faire savoir.

Remerciements et salutations

0
Nandagopal T