2010-09-13 14 views

Odpowiedz

79

użyj:

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

Strzeżcie !! Jeśli chcesz najpierw dodać ten element do innego dokumentu, musisz go zaimportować za pomocą ImportNode.

+1

Czy to się nie uda, jeśli na początku nie ma tagu w wersji

+2

@ Jimmy Hoffa: IIRC LoadXml przyjmuje każdy dobrze uformowany fragment XML, który zawiera dokładnie jeden element XML na najwyższym poziomie. ' dtb

+2

Tak, to zadziała, spróbuj sam. – Aliostad

13

Zastosowanie XmlDocument.LoadXml:

XmlDocument doc = new XmlDocument(); 
doc.LoadXml("<item><name>wrench</name></item>"); 
XmlElement root = doc.DocumentElement; 

(lub w przypadku mówisz Xelement użyć XDocument.Parse :)

XDocument doc = XDocument.Parse("<item><name>wrench</name></item>"); 
XElement root = doc.Root; 
+1

Chciał tego elementu, a dla XElement może po prostu zrobić XElement.Parse (xmlString), ale dajesz mu dokument, a nie element. –

+0

@ Jimmy Hoffa: Jeśli masz dokument, łatwo zdobyć element główny, nie? – dtb

+0

Pewnie, właśnie mówiłeś, że twoja odpowiedź może być lepiej dopasowana do pytania o plakaty, na wypadek, gdyby nie było to dla niego tak łatwe, jak dla nas. –

2

Możesz użyć XmlDocument.LoadXml(), aby to zrobić.

Oto prosty examle:

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

Dziękuję za odpowiedź. – Dean

0

Próbowałem z tym fragmencie, Got rozwiązanie.

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

Jeśli jakiś inny lepszy/skuteczny sposób realizacji tego samego, proszę dać nam znać.

Dzięki & Cheers

17

Załóżmy, że już miał XmlDocument z dziećmi węzłów i trzeba dodać więcej element podrzędny z łańcucha.

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

Rezultat:

<root> 
    <item><name>this is earlier manipulation</name> 
    <item><name>wrench</name></item> 
    <item><name>screwdriver</name> 
</root> 
Powiązane problemy