Мне нужно преобразовать строку XML в XmlElement - PullRequest
55 голосов
/ 13 сентября 2010

Я ищу самый простой способ преобразования строки, содержащей действительный XML, в XmlElement объект в C #.

Как вы можете превратить это в XmlElement?

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

Ответы [ 5 ]

91 голосов
/ 13 сентября 2010

Используйте это:

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

Осторожно !! Если вам нужно сначала добавить этот элемент в другой документ, вам нужно импортировать его, используя ImportNode.

18 голосов
/ 14 ноября 2013

Предположим, у вас уже есть 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>
14 голосов
/ 13 сентября 2010

Используйте XmlDocument.LoadXml :

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

(Или, если вы говорите о XElement, используйте XDocument.Parse :)

XDocument doc = XDocument.Parse("<item><name>wrench</name></item>");
XElement root = doc.Root;
2 голосов
/ 13 сентября 2010

Вы можете использовать XmlDocument.LoadXml () для этого.

Вот простой пример:

XmlDocument xmlDoc = new XmlDocument(); 
xmlDoc.LoadXml("YOUR XML STRING"); 
0 голосов
/ 12 мая 2012

Я попробовал с этим фрагментом, Получил решение.

// 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);

Если есть какой-либо другой лучший / эффективный способ реализовать то же самое, пожалуйста, сообщите нам.

Спасибо и ура

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...