Чтение и навигация по файлу набора данных XML - PullRequest
0 голосов
/ 29 октября 2009

Файл набора данных 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");
            }

Но безуспешно.

Помощь оценена.

Спасибо

Ответы [ 2 ]

1 голос
/ 29 октября 2009

с использованием linq to 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 голосов
/ 29 октября 2009

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

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

Спасибо

Гвидо Тапиа

...