草庐IT

XmlSerializer

全部标签

javascript - 从 XMLSerializer().serializeToString 格式化输出字符串

我正在使用以下调用来获取我的部分DOM的XML代码。varsXML=newXMLSerializer().serializeToString(document.getElementsByTagName("TopElementTag")[0]);但是,当我显示这个字符串时,它都是一行。有没有一种方法可以格式化此字符串,使其具有换行符和制表符以使其易于人类阅读? 最佳答案 我用了vkBeutify使用以下代码。varsXML=newXMLSerializer().serializeToString(document.getElement

c# - 向 XML 添加根元素

我有一个具有以下结构的XML字符串:SomethingSomethingElseSomething2SomethingElse2我想将其序列化为List.我使用这段代码:XmlSerializerxd=newXmlSerializer(typeof(T));XDocumentxdoc=XDocument.Parse(xmlStringToDesirialize);TdeserializedObject=xd.Deserialize(xdoc.CreateReader())asT;在哪里T是List.我得到一个异常(exception)说Therearemultiplerooteleme

c# - 读取标签外的xml注释

这个问题在这里已经有了答案:DeserializingthecommentsinXMLfile(2个答案)关闭8年前。我在反序列化一些xml时遇到了一些问题.NET2345我如何从这个xml中获取评论(需要获取ID)。实现IXmlSerializer它会非常庞大​​。任何想法如何以不同的方式做?如果这个注释可以在标记之间-使用XmlAttributeOverrides不是问题,但事实并非如此。这是进程的开始:publicobjectXmlFromStream(HttpWebResponseresp,Typetype){XmlSerializerxmlSerializer;StreamR

c# - XMLSerializer 在反序列化派生类型时警告未知节点/属性

我最近使用XMLSerializer为未知节点、元素和属性注册了事件处理程序,用于从类型层次结构中反序列化复杂类型。我这样做是因为我收到的一些XML来自第三方;我对数据格式更改感兴趣,这可能会给我带来麻烦。在XMLSerializer生成的XML中,它使用标准XML属性xsi:type="somederivedtypename"来标识XML元素表示的实际派生类型。我很惊讶地看到同一个序列化程序在反序列化时将它刚刚生成的相同属性视为未知。有趣的是,反序列化是正确和完整的(在我的真实程序中也有更复杂的类型和数据)。这意味着序列化程序会在反序列化的早期阶段正确评估类型信息。但是在稍后的数据提

c# - XmlSerializer 为 x86 和 x64 生成不同的输出

我有以下示例代码,它为x86和x64生成不同的输出。classSampleSerializer{publicstaticstringSerialize(string[]samples){varxmlDocument=string.Empty;varxmlSerializer=newXmlSerializer(typeof(string[]));using(varms=newMemoryStream()){xmlSerializer.Serialize(ms,samples);xmlDocument=Encoding.UTF8.GetString(ms.ToArray());}retur

c# - 在 Xml-Deserialization 中获取节点的所有子元素的名称

我得到了以下XML结构:我正在尝试读取element的子元素的名称?因此,我正在使用System.Xml.Serialization来读取其他元素/属性,但我无法读取它的子元素的名称。谢谢。 最佳答案 可以通过使用XmlAnyElement选择父元素来实现。以下代码显示了一个示例解决方案:[XmlAnyElement("Element")]publicXmlElementElements{get;set;}[XmlIgnore]publicListElementNames{get{varelementNames=newList();

xml - 如何在 Symfony XmlEncoder 中设置编码 UTF-8 和 xmlns 属性

我使用Symfony3Serializer并通过XmlEncoder将我的对象转换为XML。但是XmlEncoder在xml序言中没有编码类型。如何解决这个问题?我可以在根元素后添加带有参数的自定义属性吗?有没有办法在根元素中设置xmlns?我需要这样的XML输出:2010-10-05T16:36:00+04:00...现在我明白了:...我的序列化程序代码片段:$xmlEncoder=newXmlEncoder('realty-feed');$normalizer=newCustomNormalizer();$serializer=newSerializer(array($norma

xml - Oracle 的 xmlserializer 中的尾随空格

我在Linux作业的Oraclesqlplus查询中使用XMLSerializer。在SQLDeveloper命令选项卡上,一切看起来都很好,但在linux上,我看到xml输出尾随空格:${ORAPLUS}-s/@tns_entry输出:HowdoIgetridofthespaceshere?value当然,我可以运行post-pretty-up命令来删除尾随空格,但这看起来像是在对抗症状。 最佳答案 这并不是真正的XMLSerialize()调用,它是假脱机数据的默认行为。在你的脚本中,添加:SETTRIMSPOOLONFromt

c# - XmlSerializer 等效于 IExtensibleDataObject

使用DataContracts,您可以从IExtensibleDataObject派生以允许往返工作,而不会丢失XML文件中的任何未知附加数据。我不能使用DataContract,因为我需要控制输出XML的格式。但我还需要能够在旧版本应用程序中读取future版本的XML文件,而不会丢失XML文件中的任何数据。例如XMLv1:FredXMLv2:Fred42如果从我的应用程序的v1中读取一个XMLv2文件,反序列化和再次序列化它会将它变成一个XMLv1文件。即“年龄”字段被删除。有什么类似于IExtensibleDataObject的东西可以与XmlSerializer一起使用来避免A

c# - 使用 XmlSerializer 时自动缩小属性/元素名称

使用XmlSerializer序列化C#类时,表示类属性的属性/元素将与源代码中的名称相同。我知道你可以通过这样做来覆盖它:[XmlAttribute("num")]publicintNumberOfThingsThatAbcXyz{get;set;}我希望为我的类生成的XML尽可能紧凑,但显然仍然能够在另一端自动反序列化。有没有办法尽可能地缩小这些名称,而不必手动考虑并用短字符串注释所有内容?生成的XML易于人类阅读不是问题。 最佳答案 Hmya,注意像这样的微优化。用现代计算硬件让他们获得返回是非常困难的。涉及处理XML的I/O