草庐IT

拓扑序列

全部标签

xml - 是否所有 MS Word 文档都以 XML 可读格式序列化?

我试图了解Word文件在被MicrosoftWord打开时是如何重建的,以及在保存编辑和关闭文件时它们以何种格式序列化。你有什么信息对我很有用吗?谢谢 最佳答案 所有.doc文件都存储在binaryformat中.打开和操作这些是痛苦的练习。所有.docx文件实际上都是以ZIP格式存储的XML文件的集合。没错,只需将.docx或.xmlx或.pptx的扩展名更改为.ZIP,您就可以像打开任何其他ZIP文件一样打开该文件。MS甚至为这些格式提供了一个API,称为OfficeOpenXML.就个人而言,我认为OOXMLAPI的学习曲线非

.net - 如何在 Xml 序列化、DataContractSerializer 和 LINQ to XML 之间进行选择以序列化简单对象树?

我需要将一棵简单对象树作为XML序列化到文件中或从文件中序列化——自从我上次不得不这样做以来,世界已经发生了变化……(我不关心XML的模式,只要支持人员可以在需要时理解该文件)那么,在.net中的不同“easyxml”API之间进行选择时,需要考虑哪些权衡? 最佳答案 这就是我思考这些选项的方式:LINQtoXML–完全控制XML和对象的设计,3个选项中代码最多的选项。DataContractSerializer–对XML的控制很少或没有,可以处理大多数对象XmlSerializer–完全控制XML,但您必须以Xml序列化喜欢的方式

c# - 我可以使用 XmlSerializer 控制某些字段的序列化吗

我可以在C#中使用XmlSerializer控制某些字段的序列化吗?Fox示例一个名为“Type”(string)的属性被序列化为其他东西而不是字符串。提前致谢。 最佳答案 您可以通过XmlElement控制一些事情/XmlAttributeannotations--元素的名称,无论是属性还是完整的XML元素等。但是,您不能直接更改类型。如果您需要支持任何类型的复杂序列化方案,XmlSerializer不是一个好的选择,因为它有很多限制。您最好使用DataContractSerializer(请参阅WCF文档中的"UsingData

c# - 如何在不锁定文件的情况下将xml反序列化为对象?

我有一个用于数据库的xml文件,这意味着该xml经常更新。对于xml数据库,有一个FileWatcher,一旦xml更新,我就会收到一个事件,然后我将xml反序列化为对象,并检查是否确实发生了变化。我遇到的问题是,一旦我反序列化xml,StreamReader就会锁定文件,因此我在尝试更新它时可能会遇到异常。是否可以在不锁定文件的情况下反序列化xml?XmlSerializerserializer=newXmlSerializer(typeof(MyType));Streamreader=newFileStream(File,FileMode.Open);varmyType=(MyTy

xml - xslt 节点集与序列

我想知道节点集和序列有何不同。为什么序列在xslt2.0中被认为更好?有人可以给我一个节点集的例子(带有选择属性)以及如何将其转换为序列吗? 最佳答案 XSLT2.0中的序列是XSLT1.0中节点集的概括。它们在两个方面有所不同(a)它们可以包含节点以外的东西:例如,你可以有一个字符串或整数序列(b)它们可以包含重复项,并且可以包含任何顺序的节点(节点集是无序的)。由于XSLT1.0只有节点集,而XSLT2.0只有序列,所以不可能将节点集转换为序列:像/a/b这样的表达式在XSLT1.0中返回一个节点集,在XSLT2.0中将返回一个

c# - 在 C# 中序列化数组

有没有办法在C#中序列化整个数组,例如:[Serializable()]publicclassData{publicshortSome_Short_Data=newshort[100,100];publicstringSome_String_Data=newstring[100,100];}然后写入文件:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Xml;usingSystem.Xml.Serialization;usingSystem.IO;Data

xml - 防止 IEnumerable 和 ICollection<T> & 继承类型的 XML 序列化

注意:XMLIgnore不是答案!好的,下面是我关于XMLSerializationandInheritedTypes的问题,我开始将该代码集成到我正在处理的应用程序中,愚蠢地认为一切都会顺利..我遇到了一些实现IEnumerable和ICollection类的问题问题在于,当XMLSerializer开始序列化它们时,它将它们视为外部属性,而不是使用我们希望它使用的属性(即带有我们的AbstractXmlSerializer的属性))它来到这里并倒下(由于类型不匹配),几乎让我们回到原点。您也不能使用XmlIgnore属性修饰这些方法,因此我们不能那样阻止它。我目前的解决方案是删除接

c# - 继承现有的 .Net 类序列化错误

我正在继承和修改System.Net.MailMessage类以用于Web服务。由于其他原因,我需要将其命名为MailMessage。当我在下面的代码中使用它时,出现以下错误。“类型‘System.Net.Mail.MailMessage’和‘TestWebService.MailMessage’都使用命名空间‘http://tempuri.org/’中的XML类型名称‘MailMessage’。使用XML属性为类型指定唯一的XML名称和/或命名空间。”我相信我必须添加XMLRoot和Type属性,但我似乎无法找出正确的组合。我需要做什么来解决这个错误?namespaceTestWeb

c# - 如何在没有父元素的情况下将列表序列化为 XML

我正在使用System.Xml.Serialization.XmlSerializer将我的类序列化为XML文档。这些是我的类(class):publicclassTest{publicListListItems{get;set;}[XmlAttribute]publicStringName{get;set;}[XmlAttribute]publicStringID{get;set;}publicScenario(){this.ListItems=newList();}}publicclassListItem{publicStringName{get;set;}}这是我得到的XML:t

c# - XML 序列化在 null 或空值上强制完全结束标记

我有课publicclassTestowa{publicstringtest{get;set;}}当我序列化它而没有测试值(value)时,我得到但是我想得到我该怎么做? 最佳答案 扩展XmlWriter来自there,如果您使用类似于以下的代码进行序列化:XmlSerializers=newXmlSerializer(typeof(Testowa));using(FileStreamfs=newFileStream(File,FileMode.CreateNew)){XmlWriterSettingssettings=newXml