我需要将XMLstring转换为XmlElement

我正在寻找最简单的方法将包含有效XML的string转换为C#中的XmlElement对象。

你怎么能把它变成一个XmlElement

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

用这个:

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

谨防!! 如果您需要首先将此元素添加到其他文档,则需要使用ImportNode导入它。

假设你已经有了一个带有子节点的XmlDocument,并且你需要从string中添加更多的子元素。

 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> 

使用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; 

您可以使用XmlDocument.LoadXml()来执行此操作。

这是一个简单的例子:

 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml("YOUR XML STRING"); 

我试着用这个片段,得到的解决scheme。

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

如果还有其他更好的/有效的方式来实施,请告诉我们。

感谢和欢呼