2009-09-07 4 views
2

이것은 할 수있는 일이지만 최선의 방법에 대한 사람들의 아이디어를 듣고 싶습니다. 웹에 XML 파일이 http://www.someplace.com/file에 있고 데이터를 가져 와서 DataTable 객체로 변환 한 후 데이터 테이블을 반환하는 웹 서비스를 작성했습니다. 우리는 C# 3.5를 사용하고 있습니다. 이 문제를 해결하는 가장 좋은 방법은 무엇이라고 생각하십니까?XML을 DataTable로 변환

답변

4

간단히 로컬 디스크에 XML 파일을 다운로드 한 다음의 DataTable을 만들고, 그 위에 DataTable.ReadXml(filename) 전화 ..... 또는 뭔가 ....

DataTable.ReadXml 심지어 지원 실종 스트림 - 그래서 당신은 URL에서 XML을 다운로드하여 WebResponse 스트림에 직접 연결할 수 있습니다.

(이 메모리에서, 검증되지 않은 -하지만 당신이 접근하는 방법에 대한 아이디어 제공해야합니다) :

DataTable myDataTable = new DataTable(); 

HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(new Uri("http://someplace/somefile.xml"); 
myRequest.Method = "GET"; 

WebResponse myResponse; 
try 
{ 
    myResponse = myRequest.GetResponse(); 

    using (Stream responseStream = myResponse.GetResponseStream()) 
    { 
     myDataTable.ReadXml(responseStream); 
    } 
} 
catch 
{ } 

마크 당신은 데이터 집합에 XML을 구문 분석하고 DataTable에있어 얻을 수

+0

나는 IO 비용을 원하지 않으며, 메모리에서 XML 문서를 반복하여 데이터 테이블에 수동으로 추가하는 유일한 방법입니다. ? – cerhart

+0

죄송합니다. 게으른 읽기. 웹 요청 스트림을 사용할 수 있습니다. 멋지다! – cerhart

2
DataTable dt = new DataTable(); 
dt.ReadXml("c:myxml.xml"); 
0

을 :

DataSet dataSet = new DataSet(); 
dataSet.ReadXml("input.xml", XmlReadMode.ReadSchema); 
+0

실제로 XML은 내 도메인 외부에 있으므로 디스크에 저장 한 다음로드해야합니다. IO 비용을 피하기를 바랬습니다. – cerhart