Мне нужно преобразовать XML-строку в XmlElement
Я ищу самый простой способ преобразовать строку, содержащую допустимый XML в XmlElement
"объект" в C#.
как вы можете превратить это в элемент XmlElement
?
<item><name>wrench</name></item>
5 ответов:
используйте этот:
private static XmlElement GetElement(string xml) { XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); return doc.DocumentElement; }
остерегайтесь!! Если вам нужно добавить этот элемент в другой документ сначала нужно импортировать его с помощью
ImportNode
.
предположим, что у вас уже был XmlDocument с дочерними узлами, и вам нужно добавить еще дочерний элемент из строки.
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);
Результат:
<root> <item><name>this is earlier manipulation</name> <item><name>wrench</name></item> <item><name>screwdriver</name> </root>
использовать XmlDocument.LoadXml:
XmlDocument doc = new XmlDocument(); doc.LoadXml("<item><name>wrench</name></item>"); XmlElement root = doc.DocumentElement;
(или в случае, если вы говорите о XElement, используйте XDocument.Разбор:)
XDocument doc = XDocument.Parse("<item><name>wrench</name></item>"); XElement root = doc.Root;
вы можете использовать XmlDocument.LoadXml() для этого.
вот простой пример:
XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml("YOUR XML STRING");
я попробовал с этим фрагментом, получил решение.
// 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);
Если любой другой лучший / эффективный способ реализовать то же самое, пожалуйста, сообщите нам об этом.
Спасибо И Ура