Tag: xmltextwriter

内存流是空的

我需要从不同的源(函数)生成一个巨大的xml文件。 我决定使用XmlTextWriter因为它使用的内存比XmlDocument少。 首先,使用底层MemoryStream启动XmlWriter MemoryStream ms = new MemoryStream(); XmlTextWriter xmlWriter = new XmlTextWriter(ms, new UTF8Encoding(false, false)); xmlWriter.Formatting = Formatting.Indented; 然后我将XmlWriter (注意xml编写器保持打开直到最后)传递给一个函数来生成XML文件的开头: xmlWriter.WriteStartDocument(); xmlWriter.WriteStartElement(); // xmlWriter.WriteEndElement(); // Do not write the end of root element in first function, to add more xml elements in following functions xmlWriter.WriteEndDocument(); xmlWriter.Flush(); 但我发现底层内存流是空的(通过将字节数组转换为字符串和输出字符串)。 有什么想法吗? 另外,我有一个关于如何从不同的源(函数)生成一个巨大的xml文件的一般性问题。 我现在所做的是保持XmlWriter打开(我假设底层内存流也应该打开)到每个函数并写入。 在第一个函数中,我没有写根元素的结尾。 在最后一个函数之后,我通过以下方式手动添加根元素的结尾: string endRoot […]

如何防止&转换为& 使用XmlTextWriter?

文本中的“&”被转义并转换为& 使用XmlTextWriter创建xml文件时,我不希望转换发生如何防止它? 除了使用xmltextwriter的WriteRaw函数之外还有其他方法吗?

如何在XmlTextWriter中设置Settings属性,以便我可以在自己的行上编写每个XML属性?

我有一些代码,它将一个对象序列化为一个文件。 我试图让每个XML属性在一个单独的行上输出。 代码如下所示: public static void ToXMLFile(Object obj, string filePath) { XmlSerializer serializer = new XmlSerializer(obj.GetType()); XmlWriterSettings settings = new XmlWriterSettings(); settings.NewLineOnAttributes = true; XmlTextWriter writer = new XmlTextWriter(filePath, Encoding.UTF8); writer.Settings = settings; // Fails here. Property is read only. using (Stream baseStream = writer.BaseStream) { serializer.Serialize(writer, obj); } } 唯一的问题是, XmlTextWriter对象的Settings属性是只读的。 如何在XmlTextWriter对象上Settings属性,以便NewLineOnAttributes设置有效? 好吧,我以为我需要一个XmlTextWriter ,因为XmlWriter是一个abstract类。 […]

C#:XmlTextWriter.WriteElementString在空字符串上失败?

我正在使用XmlTextWriter及其WriteElementString方法,例如: XmlTextWriter writer = new XmlTextWriter(“filename.xml”, null); writer.WriteStartElement(“User”); writer.WriteElementString(“Username”, inputUserName); writer.WriteElementString(“Email”, inputEmail); writer.WriteEndElement(); writer.Close(); 预期的XML输出是: value value 但是,如果例如inputEmail为空,则得到结果XML,如下所示: value 而我希望它是: value 我究竟做错了什么? 有没有办法使用XmlTextWriter以简单的方式实现我的预期结果?

修改C#中的XML现有内容

目的:我计划使用XmlTextWriter创建XML文件,并使用XmlNode SelectSingleNode(),node.ChildNode [?]修改/更新一些现有内容.InnerText = someting等。 用XmlTextWriter创建XML文件后,如下所示。 XmlTextWriter textWriter = new XmlTextWriter(“D:\\learning\\cs\\myTest.xml”, System.Text.Encoding.UTF8); 我练习下面的代码。 但未能保存我的XML文件。 XmlDocument doc = new XmlDocument(); doc.Load(“D:\\learning\\cs\\myTest.xml”); XmlNode root = doc.DocumentElement; XmlNode myNode; myNode= root.SelectSingleNode(“descendant::books”); …. textWriter.Close(); doc.Save(“D:\\learning\\cs\\myTest.xml”); 我发现按照我的方式生产是不好的。 有什么建议吗? 我不清楚同一个项目中XmlTextWriter和XmlNode的概念和用法。 感谢您阅读和回复。