在C#中将字符串转换为XmlNode的更好方法

时间:2010-11-09 03:45:48

标签: c# xml


          我想将一个字符串(显然是一个xml)转换为C#中的XmlNode。虽然在网上搜索我得到了这个代码。我想知道这是否是一个将字符串转换为XmlNode的好方法?我必须在循环中预先形成这种转换,它是否会导致任何性能问题?

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

请回复,

感谢
亚历

3 个答案:

答案 0 :(得分:92)

应该是直截了当的:

        string xmlContent = "<foo></foo>";
        XmlDocument doc = new XmlDocument();
        doc.LoadXml(xmlContent);
        XmlNode newNode = doc.DocumentElement;

或LINQ,如果这是一个选项:

        XElement newNode  = XDocument.Parse(xmlContent).Root;

答案 1 :(得分:0)

接受的答案仅适用于单个元素。 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");

答案 2 :(得分:-4)

XmlDocument Doc = new XmlDocument();
Doc.LoadXml(xml);