web-dev-qa-db-ja.com

XML文字列をXmlElementに変換する必要があります

有効なXMLを含む文字列をC#のXmlElementオブジェクトに変換する最も簡単な方法を探しています。

これをどのようにしてXmlElementに変えることができますか?

<item><name>wrench</name></item>
56
Dean

これを使って:

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

気をつけろ!!この要素を別のドキュメントに最初に追加する必要がある場合は、ImportNodeを使用してインポートする必要があります。

93
Aliostad

既に子ノードを持つ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>
19
johnrock

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;
14
dtb

これを行うには、XmlDocument.LoadXml()を使用できます。

簡単な例を次に示します。

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

私はこのスニペットで試しました、解決策を得ました。

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

同じことを実装する他のより良い/効率的な方法があれば、お知らせください。

ありがとう&乾杯

0
Nandagopal T