2014-06-18 20 views
0

DataSet을 채우기 위해 사용하려는 상대적으로 간단한 xml 파일이 있습니다. 다음 코드를 시도하고 있습니다DataSet.ReadXml이 모든 데이터를 가져 오지 못함

using (DataSet ds = new DataSet()) 
{ 
    ds.ReadXml(Server.MapPath("xmlFileName.xml")); 
} 

그러나 내 데이터 집합은 파일의 첫 번째 노드가 포함 된 하나의 행으로 끝납니다. 같은

XmlReader xmlFile = XmlReader.Create("xmlFileName.xml", new XmlReaderSettings()); 
DataSet ds = new DataSet(); 
ds.ReadXml(xmlFile); 

그리고

FileStream fsReadXml = new FileStream("xmlFileName.xml", FileMode.Open); 
XmlTextReader xmlReader = new System.Xml.XmlTextReader(fsReadXml); 
newDataSet.ReadXml(xmlReader, XmlReadMode.ReadSchema); 

내가 시도 다른 방법은 둘 다 빈 데이터 세트를 초래한다.

I 전체 XML 파일을 게시 할 수 있지만, 그 형식은 기본적

<service_orders count="70"> 
    <service_order order_number="1111" id="111111"> 
    <customer> 
     <customer_id>55555</customer_id> 
     <first_name>John</first_name> 
     <last_name>Doe</last_name> 
     <email>[email protected]</email> 
     <phone1>55555555</phone1> 

I 언급 한 첫 번째 방법 만이 "service_order_id"에서 두 개의 열을 생성하고 값을 0으로 을 "셀"및 70이다. 첫 번째 노드에만 닿아있는 것처럼 보입니까?

그래서 이러한 방법으로 내가 뭘 잘못하고 있는지 잘 모르겠습니다. XML 파일이 제대로 포맷되지 않았습니까? 어떻게 든 노드로 깊숙이 들어가야합니까? 어느 노드를 명중 시킬지 지정할 수있는 방법이 있습니까?

어떤 도움을 주시면 감사하겠습니다

, 내가 DataSet에 여러 테이블을 보유 잊고, 나는 단지 루트를 포함 처음 보는 것을 깨달았다 당신에게

답변

0

감사드립니다. 이것이 파서가 xml 트리를 탐색하는 방법을 이해하는 데 도움이되었지만. 리프 요소 (자식 요소 없음) 만 테이블에 추가되고 다른 모든 요소는 데이터 집합에서 자체 테이블을 가져옵니다. 루트 내에서 동일한 이름의 여러 요소를 갖는

+0

' 존'처럼, 아와 같은 데이터 세트에서 테이블을 생성 – DerpyNerd