Лучший способ конвертировать строку в XmlNode в С#
Я хотел преобразовать строку (которая, очевидно, xml) в XmlNode в С#. Если вы ищете в сети, я получил этот код. Мне хотелось бы знать, является ли это хорошим способом преобразования строки в XmlNode? Я должен преформировать это преобразование в цикле, так что это вызывает проблемы с производительностью?
XmlTextReader textReader = new XmlTextReader(new StringReader(xmlContent));
XmlDocument myXmlDocument = new XmlDocument();
XmlNode newNode = myXmlDocument.ReadNode(textReader);
Пожалуйста, ответьте,
Спасибо
Alex
Ответы
Ответ 1
должен быть прямым:
string xmlContent = "<foo></foo>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlContent);
XmlNode newNode = doc.DocumentElement;
или с LINQ, если это опция:
XElement newNode = XDocument.Parse(xmlContent).Root;
Ответ 2
Принятый ответ работает только для одного элемента. XmlNode может иметь несколько элементов, таких как string xmlContent = "<foo></foo><bar></bar>";
(Исключение: "Есть несколько корневых элементов");
Чтобы загрузить несколько элементов, используйте это:
string xmlContent = "<foo></foo><bar></bar>";
XmlDocument doc = new XmlDocument();
doc.LoadXml("<singleroot>"+xmlContent+"</singleroot>");
XmlNode newNode = SelectSingleNode("/singleroot");
Ответ 3
XmlDocument Doc = new XmlDocument();
Doc.LoadXml(xml);