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>
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
.
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>
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;
Vous pouvez utiliser XmlDocument.LoadXml () pour ce faire.
Voici un exemple simple:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("YOUR XML STRING");
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