2009-06-24 43 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> 

我想獲得MyData的對象的集合(假設MyData的對象可以序列化和反序列化到所提到的XMLNode)XML文件解釋和操作

什麼都是對System.Xml API(S )我應該看看? - .Net和C#

請指導我。

+0

謝謝..我在發佈線程後努力格式化xml內容 – 123Developer 2009-06-24 18:10:22

回答

0

這是.NET 2.0的做事方式 - 使用System.Xml中的XmlDocument。

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 
} 

查看MSDN documentation on the XmlDocument類。這應該讓你知道如何處理XML文檔。

由於XML文檔一次將整個文檔加載到內存中,並允許您在文檔中四處瀏覽並操作,因此XML文檔方法適用於中小型文檔(大小不超過幾MB)。

使用.NET 3.5及更高版本,您可以使用XDocument獲得新的「LINQ to XML」方法 - 請查看MSDN documentation on it here

馬克

0

如果你想使用XML序列化,你可以聲明這樣的事情:

public class root 
{ 

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

} 

public class MyData 
{ 
    ... 
} 

要通過MyData的對象進行反序列化和循環,使用下面的代碼:

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) 
{ 
    ... 
}