문제
디스크의 파일이 아닌 XML 경로 저장 프로 시저의 결과를 메모리에 작성하는 방법은 무엇입니까?
현재 일을하는 방법 :
private void GetChartData(string OC_Ttl1, string OC_Ttl2, string OC_OL31)
{
OC_Ttl_1 = OC_Ttl1;
OC_Ttl_2 = OC_Ttl2;
OC_OL3_1 = OC_OL31;
//Output xml
DataSet orgDataSet = new DataSet();
orgDataSet.ReadXml(cmd_Org.ExecuteXmlReader(), XmlReadMode.Auto);
orgDataSet.WriteXml("InputXMLFiles/" + OC_OL3_1.Replace(" ",
"_").Replace("/", "-") + ".xml");
}
다른 메소드가 작동하는 파일을 디스크에 작성하는 대신이 메소드가 XML을 기억으로 되돌려 보도록하고 싶습니다.
나는 이것이 디스크에 글을 쓰는 것보다 훨씬 빠를 것이라고 가정합니다 ....
해결책
당신은 있습니다 XmlReader
- 넌 할 수있어 모두 일종의 것들. 예를 들어
XmlDocument doc = new XmlDocument();
using(XmlReader xr = cmd_Org.ExecuteXmlReader()) {
doc.Load(xr);
}
// TODO: play with "doc" with xpath etc
다른 팁
DataSet.WriteXml
과부하가 많습니다. 스트림에 쓸 수 있습니다 ( MemoryStream
) 및 작가 (a 포함 StringWriter
). 그것은 당신이 정말로 DataSet
- 사용하지 않고 XML을 직접받는 것이 행복하다면 DataSet
그런 다음 Marc의 제안을 사용하십시오.
과부하를 호출 할 수 있습니다 WriteXml
그것은 스트림에 쓰고 사용합니다 MemoryStream
, XML을 큰 긴 문자열로 원한다는 것을 의미 할 수도 있습니다.
제휴하지 않습니다 StackOverflow