Подтвердить что ты не робот

Лучший способ конвертировать строку в XmlNode в С#


        Я хотел преобразовать строку (которая, очевидно, xml) в XmlNode в С#. Если вы ищете в сети, я получил этот код. Мне хотелось бы знать, является ли это хорошим способом преобразования строки в XmlNode? Я должен преформировать это преобразование в цикле, так что это вызывает проблемы с производительностью?

        XmlTextReader textReader = new XmlTextReader(new StringReader(xmlContent));
        XmlDocument myXmlDocument = new XmlDocument();
        XmlNode newNode = myXmlDocument.ReadNode(textReader);

Пожалуйста, ответьте,

Спасибо
Alex

4b9b3361

Ответ 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);