2009-06-24 2 views
0
<?xml version="1.0" encoding="utf-8" ?> 
<root> 
    <MyData> 
    <MyField>SomeValueHere1</MyField> 
    <MyComplexData> 
     <MyComplexDataField1 property="1"></MyComplexDataField1> 
     <MyComplexDataField2 someproperty"value1"> value1 </MyComplexDataField1> 
    </MyComplexData> 
    </MyData> 
    <MyData> 
    <MyField>SomeValueHere11</MyField> 
    <MyComplexData> 
     <MyComplexDataField1 property="4"></MyComplexDataField1> 
     <MyComplexDataField2 someproperty="value1"> value2 </MyComplexDataField1> 
     </MyComplexData> 
    </MyData> 
    <MyData> 
    <MyField>SomeValueHere13</MyField> 
    <MyComplexData> 
     <MyComplexDataField1 property="5"></MyComplexDataField1> 
     <MyComplexDataField2 someproperty="value1"> value </MyComplexDataField1> 
    </MyComplexData> 
    </MyData> 
    . 
    . 
    . 
    . 
</root> 

Ich möchte die Sammlung von MyData Objekte erhalten (unter der Annahme, dass MyData Objekt serialisiert und deserialisiert in den genannten XMLNode werden kann)XML-Datei Interpretation und Manipulationen

Was sind die System.XML API (s) Ich sollte nachsehen? - .Net und C#

Bitte führen Sie mich.

+0

Danke .. Ich hatte Schwierigkeiten, den XML-Inhalt nach dem Posten des Threads zu formatieren – 123Developer

Antwort

0

Dies ist die .NET 2.0-Methode - mit einem XmlDocument von System.Xml.

XmlDocument xdoc = new XmlDocument(); 

xdoc.Load('(your file name)'); 

XmlNodeList myDataList = xdoc.SelectNodes('//MyData'); 

foreach(XmlNode dataNode in myDataList) 
{ 
    // do whatever oyu need to do with your myData nodes 
} 

Schauen Sie sich die MSDN documentation on the XmlDocument Klasse. Dies sollte Ihnen eine Vorstellung davon geben, wie Sie mit XML-Dokumenten umgehen. Der XML-Dokumentansatz eignet sich hervorragend für kleine bis mittelgroße Dokumente (weniger als ein paar MByte), da das gesamte Dokument gleichzeitig in den Speicher geladen wird und Sie im Dokument navigieren und es bearbeiten können.

Mit .NET 3.5 und höher, erhalten Sie die neue "LINQ to XML" -Ansatz mit XDocument - überprüfen Sie die MSDN documentation on it here.

Marc

0

Wenn Sie die XML-Serialisierung verwenden möchten, könnten Sie so etwas erklären:

public class root 
{ 

    [XmlElement("MyData")] 
    public List<MyData> Items { get, set } 

} 

public class MyData 
{ 
    ... 
} 

Um die Deserialisierung und eine Schleife durch die MyData Objekte durchzuführen, verwenden Sie folgenden Code:

XmlSerializer xs = new XmlSerializer(typeof(root)); 
root r; 
using (StreamReader reader = new StreamReader(filename)) 
{ 
    r = xs.Deserialize(reader) as root; 
} 

foreach(MyData d in r.Items) 
{ 
    ... 
}