2009-10-29 3 views
0

Набор данные XML-файл после того, как я добавить его в DataSet выглядит следующим образом:Чтение и навигация файла набора данных 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> 

Я имеющие проблемы с доступом к полю ADDRESS1 или поле Имени. Я могу прокручивать таблицы «Адреса» или «Друзья», но это не помогает мне, так как нужные мне данные обернуты еще на один уровень вниз.

Я попытался это:

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

Но нет успеха.

Помогите оценить.

Благодаря

ответ

1

с помощью LINQ к XML

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

Я предлагаю вам использовать объектную оболочку, когда работает с XML. Это очень полезно сделать, я предлагаю вам взглянуть на этот блог: http://www.picnet.com.au/blogs/Guido/post/2009/09/10/XML-Settings-Files-No-more-webconfig.aspx

Он предназначен для настройки файлов XML, однако он по-прежнему применяется здесь.

Благодаря

Guido Тапиа