问题标签 [xml-serialization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - XML 反序列化问题
我有以下从 Web 服务发送给我的 xml。我正在使用 .NET 对其进行反序列化,但我收到一个异常,说它的格式错误。There is an error in XML document (2, 2)
现在,如果我理解正确,它不喜欢找到第一个<error>
节点。
我的代码如下所示,数据是String
上面 XML 的版本:
并且cResponseMessage
只是一个具有XMLRoot
属性的类和 2 个具有属性的XMLElement
属性。这里没有什么花哨的,但它不想工作。
任何帮助都会很棒。
c# - 自定义日期时间 XML 序列化
我希望能够使用不是服务器的特定时区序列化 DateTime,也不是客户端时间。基本上,任何时区。是否可以在 .Net2.0 webservices 中覆盖 DateTime 序列化?
我使用 xsd.exe 编译了一个 xmlschema,所以我尝试使用 XmlSchemaImporter。
OnSerialize 示例显示值更改,但不更改输出格式。
XmlSchemaImporter,将其加载到 gac 中,运行 xsd.exe,并生成具有我想要的类的代码……但该类是一个属性,最终无法反映。
[InvalidOperationException:无法序列化 Cuahsi.XmlOverrides.W3CDateTime 类型的成员“metadataDateTime”。XmlAttribute/XmlText 不能用于编码复杂类型。]
生成的代码
XmlSchemaImporter
附录 1: 我只是厌倦了 DateTimeoffset,当类被标记为如下时仍然会导致错误:
xml-serialization - XmlSerializer 可以反序列化为 Nullable?
我想反序列化包含一个元素的 XML 消息,该元素可以标记nil="true"
为具有 type 属性的类int?
。我可以让它工作的唯一方法是编写我自己的NullableInt
类型来实现IXmlSerializable
. 有更好的方法吗?
我在博客上写了完整的问题和解决方法。
c# - 如何序列化为 dateTime
努力获取任何时区的日期时间。我正在使用 DateTimeOffset、一个字符串和一个 XmlElement 属性。当我这样做时,我收到以下错误:
[InvalidOperationException:'dateTime' 是 XmlElementAttribute.DataType 属性的无效值。dateTime 无法转换为 System.String。]
System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel model, String ns, ImportContext context, String dataType, XmlAttributes a, Boolean repeats, Boolean openModel, RecursionLimiter limiter) +450[InvalidOperationException:反映类型“System.String”时出现错误。]
System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel 模型,字符串 ns,ImportContext 上下文,字符串数据类型,XmlAttributes a,布尔重复,布尔 openModel,RecursionLimiter 限制器) +1621
System.Xml.Serialization.XmlReflectionImporter.ImportAccessorMapping(MemberMapping 访问器,FieldModel 模型,XmlAttributes a,String ns,Type choiceIdentifierType,Boolean rpc,Boolean openModel,RecursionLimiter 限制器)+8750
System.Xml.Serialization.XmlReflectionImporter.ImportFieldMapping(StructModel parent , FieldModel 模型, XmlAttributes a, String ns, RecursionLimiter 限制器) +139
System.Xml.Serialization.XmlReflectionImporter.InitializeStructMembers(StructMapping 映射,StructModel 模型,Boolean openModel,String typeName,RecursionLimiter 限制器)+1273[InvalidOperationException:反映属性'creationTimeX'的错误。] ...
代码:
soap - XML 中的波浪号
波浪号是 XML SOAP 消息中的合法字符吗?我得到一个 SAXParseException:Content not allowed in prolog。我包含了大部分 SOAP 消息,以防万一我找错了树。
c# - 反序列化字符串列表而不创建新类?
我有一个 XML 配置文件,其中包含一组字符串,如下所示:
这些“事物”成为应用程序前端的选项,供用户选择。
我的问题是我是否必须创建一个事物类才能正确使用序列化,或者有没有办法使用属性将字符串直接读入列表?
例如(为简洁起见,删除了正文和私有变量,这是 .NET 2.0):
c# - 直接反序列化到/从 XML Linq
有没有办法在不往返 XmlDocument/temp 字符串的情况下对对象进行反序列化/序列化?我正在寻找类似以下的内容:
但是,当我这样做时出现错误(不能将非空白字符添加到内容中。)如果我将类包装在元素中,我会看到写入的内容是 <element>ConsoleApplication17.MyClass</element> - 所以错误说得通。
我确实有自动反序列化/序列化的扩展方法,但这不是我想要的(这是客户端,但我仍然想要更优化的东西)。
有任何想法吗?
c# - 如何抑制列表属性的 XML 标记
序列化时是否可以避免列出属性标签?
序列化 Foo 给出(注释除外):
想要的输出:
.net - Xml 集合的序列化
我想序列化以下 Xml 结构:
但我在链接文本中发现
引用以上链接:...
- 问:为什么不是所有集合类的属性都被序列化了?
- 答:XmlSerializer 仅在检测到 IEnumerable 或 ICollection 接口时才对集合中的元素进行序列化。此行为是设计使然。唯一的解决方法是将自定义集合重新分解为两个类,其中一个公开包含纯集合类型之一的属性。
...
在发现您无法序列化或反序列化包含其他 Xml 属性的集合之后...建议的解决方法是将具有该集合的元素与具有其他属性的元素分开...即,您必须更改结构,使其看起来像这样:
有谁知道为什么会这样?或者是否有其他方法可以做到这一点?
.net - 使用 XmlSerializer 时出现 FileNotFound 异常
当尝试使用 将类型(List<T>
T 是用 XmlRootAttribute 标记的类的泛型)序列化为 XMLXmlSerializer
时,FileNotFoundException
会抛出 a(有时)并且序列化失败。
似乎XmlSerializer
试图在运行应用程序的用户的 Temp 文件夹中创建一个具有随机文件名的临时文件,但该文件以某种方式被删除。
有人见过这个吗?任何解决方法?