1
XElement에서 DataSet의 Diffgram을 얻으려면 어떻게해야합니까?C# Diffgram to XElement, Reader/Writer confusion
// DataSet to Diffgram in a string:
StringBuilder sb = new StringBuilder();
XmlWriterSettings settings = new XmlWriterSettings { Indent = true, Encoding = Encoding.UTF8 };
using (XmlWriter xw = XmlWriter.Create(sb, settings))
{
ds.WriteXml(xw, XmlWriteMode.WriteSchema);//XmlWriteMode.DiffGram
}
string str = sb.ToString();
하지만 문자열로 먼저 출력에의 DiffGram의 XML을 낭비 보인다 다음에 다시 구문 분석 : 나는 문자열에서의 DiffGram을 얻는 방법을 발견
(또는하여 XDocument) XElement.
// I have a DataSet filled with some data
DataSet ds = new DataSet();
ds.Tables.Add(ScanData);
// I need the diffgram of the DataSet in an XElement
XElement xe = null;
XmlReader xr = xe.CreateReader();
// I could live with output to XDocument, and extract the XElement later
XDocument xd = new XDocument();
XmlReader xrd = xd.CreateReader();
// Q: How do I construct a stream that connects an XmlReader to ds.WriteXml()?
Stream stream = ...???... ;
// This method creates the DiffGram output format to a stream
ds.WriteXml(stream, XmlWriteMode.WriteSchema);//diffgram output
내가 내 코드 문제에 대한 답을 찾을 수 있도록 노력하겠습니다 : 그래서 XML 변수로 변환하지 않고의 DiffGram의 XML을 전송해야하는이 코드에서 누락 된 링크를 입력하는 방법을 찾기 위해 노력하고있다 어쩌면 스트림/리더/라이터가 실제로 어떻게 작동 하는지를 배울 수도 있습니다.
감사합니다! 간단하지만, 불행히도 여전히 자신을 해결하기가 어렵습니다. 나는 ds.WriteXml()이 FROM ds를 쓰고, xd.CreateWriter()가 xd에 쓰는 것을 준다는 것을 알 수 없었다. – Roland