2009-10-29 31 views
0

的XML數據集文件後,我將它添加到數據集是這樣的:閱讀和瀏覽的XML數據集文件

<?xml version="1.0" standalone="yes"?> 
<root> 
<Email></Email> 
<FirstName></FirstName> 
<LastName></LastName> 
<Addresses> 
    <item> 
    <Address1></Address1> 
    </item> 
    <item> 
    <Address1></Address1> 
    </item> 
</Addresses> 
<Friends> 
    <item> 
    <Name></Name> 
    </item> 
    <item> 
    <Name></Name> 
    </item> 
</Friends> 
</root> 

我有問題訪問地址1字段或名稱字段。我可以循環訪問地址或朋友表,但這並不能幫助我,因爲我想要的數據被多層包裝。

我嘗試這樣做:

  foreach (DataRow ar in ds.Tables["Addresses"].Rows) 
      { 
       DataRow[] orderDetails = ar.GetChildRows("item"); 
      } 

但沒有成功。

幫助讚賞。

感謝

回答

1

public static XDocument GetXDocument() 
    { 
     XDocument mydata = XDocument.Parse("<?xml version=\"1.0\" standalone=\"yes\"?><root><Email></Email><FirstName></FirstName><LastName></LastName><Addresses><item><Address1>TestData</Address1></item><item><Address1></Address1></item></Addresses> <Friends> <item>  <Name></Name> </item><item><Name></Name></item></Friends></root>"); 
     return mydata; 
    } 

該得到的數據作爲的XDocument,這是你如何應對數據

public void OutputAddress() 
{ 
    XDocument data = xmlData.GetXDocument(); 
    string Expected = "TestData"; 
    var result = from 
     addesses in data.Element("root").Elements("Addresses") 
    where 
     addesses.Element("item").Element("Address1").Value != string.Empty 
    select addesses.Element("item").Element("Address1").Value; 

    foreach (string address1 in result) 
    { 
     Console.Write(address1); 
    } 
}