2011-09-15 2 views
0

그래서 작은 파일을 만드는 것이 중요한 응용 프로그램의 XML 파일에 데이터 집합을 저장합니다. 지금은 XML 요소를 데이터 셋 테이블 및 필드의 이름으로 저장합니다. 나는 대신 이러한 태그를 기본 데이터 집합 이름 이외의 다른 것으로 쉽게 저장하고 같은 이름을 사용하여 다시로드 할 수있는 방법이 있는지 궁금합니다. 지금 예를 들어데이터 집합을 XML로 저장하면 더 작은 XML을 얻기 위해 생성 된 태그 이름을 무시할 수 있습니다.

내가 데이터 세트

XmlTextWriter xml = new XmlTextWriter("myfile.xml", Encoding.UTF8) { Formatting = Formatting.None }; 
myDataset.WriteXml(xml); 

을 저장하려면이 같은 일을 할 수 있습니다 그것은 다음과 같습니다 긴 XML을 생성 할 수 있습니다 ...

<MYDataSet xmlns="http://tempuri.org/MYDataSet.xsd"> 
<MyElement><ReallyLongTagNames>other info and tags</ReallyLongTagNames></MyElement> 
... 
</MyDataSet> 

내가 원하는 공간을 절약하기 위해 이와 같이 보이는 것들을 저장하고로드 할 수 있지만 좋은 방법을 찾을 수는 없습니다. 내 데이터 집합을 숨기지 않고도 계속 유지하면서 XML을로드하고 저장할 수 있다는 것을 의미합니다.

<MYDataSet xmlns="http://tempuri.org/MYDataSet.xsd"> 
<a><b>other info and tags</b></a> 
... 
</MyDataSet> 

데이터 집합을 저장하지 않을 때 xml이 이러한 방식으로 인쇄되도록하는 좋은 방법이 있습니까?

+0

xml 파일을 저장하지 않고 읽을 수 있기를 원하십니까 아니면 데이터 전송/저장에이 파일을 사용하고 싶습니까? – tsells

+0

예, 데이터를 저장 한 후에 데이터를 다시 읽고 싶습니다. –

답변

0

XML로 내보내기 전에 DataSet의 열 이름을 바꾸는 방법은 무엇입니까?

+0

이것이 최선의 방법 일 수 있다고 생각합니다. 특히 데이터를 다시 읽는 것이 다소 지루하고 오류가 발생하기 쉬운 것 같습니다. 누락 된 열의 이름을 바꾸는 쉬운 방법이 있습니까? 그런 다음 xml을 원래 데이터 세트로 다시 읽으십니까? –

0

파일 크기가 중요한 경우 이진 포매터를 사용하십시오. 이렇게하면 크기가 크게 줄어 듭니다.

  string path = @"D:\myfile.dat"; 
      BinaryFormatter bf = new BinaryFormatter(); 
      mydataset.RemotingFormat = SerializationFormat.Binary;     
      using (StreamWriter sw = new StreamWriter(path)) 
      { 
       bf.Serialize(sw.BaseStream, mydataset); 
      } 
+0

이것은 파일 크기를 크게 줄이지 만 내가 찾고있는 것이 아닙니다. 나는 XML로 형식을 유지하고 싶다. –

+0

이유가 있을까요? 애플리케이션 외부에서 데이터를 읽을 수 있기를 원하십니까? – tsells

+0

저는 네트워크 연결없이 Windows 모바일 바코드/RFID 스캐너에 데이터 세트를 넣을 것입니다. 응용 프로그램에 필요한 모든 인벤토리를 추적 할 수 있도록 스캐너에 상당히 많은 양의 데이터를 배치해야 할 수도 있습니다. 스캐너에는 많은 양의 메모리가 없습니다. SQL Server ce 파일이나 xml 파일로 작업하는 것이 더 좋은 방법을 실험하고 있습니다. 나는 내 데이터 세트에서 생성 한 XML 파일이 80 + % 마크 업이고 sqlce 파일보다 크지 않다는 것을 알고있다. –

관련 문제