我要将一些数据存储在xml文件中。简单的故事!为了让它变得不可读,我将它拉上了拉链。这应该工作正常!但我无法读回xml内容!
我以前编写的代码:
using( FileStream fileStream = new FileStream( filepath, FileMode.Create ) ) {
using( GZipStream zipStream = new GZipStream( fileStream , CompressionMode.Compress ) ) {
using( XmlWriter xmlWriter = XmlWriter.Create( zipStream, new XmlWriterSettings() {
Indent = true,
Encoding = Encoding.UTF8,
ConformanceLevel = ConformanceLevel.Fragment }
) ) {
xmlWriter.WriteString( xmlDocument.OuterXml );
}
}
}
我目前使用的代码:
using( FileStream fileStream = new FileStream( filepath, FileMode.Open ) )
{
using( GZipStream zipStream = new GZipStream( fileStream , CompressionMode.Decompress ) )
{
using( XmlReader xmlReader = XmlReader.Create( zipStream, new XmlReaderSettings() { ConformanceLevel = ConformanceLevel.Fragment } ) )
{
xmlReader.MoveToContent();
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(xmlReader);
}
}
}
但它并没有像预期的那样发挥作用。
xml文件看起来很简单:
<data>
<name>bill</name>
<age>45</age>
</data>
<data>
<name>john</name>
<age>32</age>
</data>
<data>
<name>bill</name>
<age>68</age>
</data>
我想使用
XmlNodeList xmlNodeList = xmlDocument.GetElementsByTagName( "data" );
我缺少什么?谢谢你的任何提示。
答案 0 :(得分:1)
在你的阅读逻辑中 替换
xmlDocument.Load(xmlReader);
与
xmlDocument.LoadXml(xmlReader.ReadContentAsString());
这对我有用