我需要将XML字符串转换为XmlElement

时间:2010-09-13 18:06:40

标签: c# xml type-conversion

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

如何将其转换为XmlElement

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

5 个答案:

答案 0 :(得分:88)

使用此:

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

小心! 如果您需要首先将此元素添加到另一个文档,则需要使用ImportNode

进行导入

答案 1 :(得分:18)

假设您已经有一个带子节点的XmlDocument,并且您需要从字符串中添加更多子元素。

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>

答案 2 :(得分:14)

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

答案 3 :(得分:2)

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

这是一个简单的例子:

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

答案 4 :(得分:0)

我尝试了这个片段,得到了解决方案。

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

如果有任何其他更好/更有效的方法来实现相同的目的,请告诉我们。

谢谢&amp;干杯