2009-10-29 2 views
0
내가 데이터 집합에 추가 한 후 XML 데이터 세트 파일은 다음과 같습니다

하는 XML 데이터 세트 파일 탐색 다음 주소 1 필드 또는 이름 필드를 액세스읽기 및

<?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> 

나는 데 문제. Addresses 또는 Friends 테이블을 반복 할 수는 있지만 원하는 데이터가 한 레벨 아래로 줄 바꿈 되었기 때문에 도움이되지 않습니다.

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