我想将一个字符串(显然是一个xml)转换为C#中的XmlNode。虽然在网上搜索我得到了这个代码。我想知道这是否是一个将字符串转换为XmlNode的好方法?我必须在循环中预先形成这种转换,它是否会导致任何性能问题?
XmlTextReader textReader = new XmlTextReader(new StringReader(xmlContent));
XmlDocument myXmlDocument = new XmlDocument();
XmlNode newNode = myXmlDocument.ReadNode(textReader);
请回复,
感谢
亚历
答案 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);