【发布时间】:2018-04-10 18:53:44
【问题描述】:
给定 XML:
<?xml version="1.0" encoding="UTF-8"?>
<Response Version="3">
<Status StatusCode="Test">Some Value</Status>
</Response>
构造 Status 类以便System.Xml.Serialization.XmlSerializer 将给定的 XML 正确解析为状态类的正确方法是什么?
我目前正在从第三方接收这种 XML 结构,他们不可能更改格式。
我对响应类的尝试如下所示:
<XmlRoot(ElementName:="Response")> Public Class clsResponse
<XmlAttribute(AttributeName:="Version"), DefaultValue(0)> Public Property intVersion() As Integer
<XmlElement(ElementName:="Status", Type:=GetType(clsStatus), Order:=2)> Public Property strStatus() As clsStatus
End Class
还有状态类:
<XmlRoot(ElementName:="Status")> Public Class clsStatus
<XmlAttribute(AttributeName:="StatusCode")> Public Property strStatusCode() As String
<XmlElement(ElementName:="Status", Order:=1)> Public Property strStatus() As String
End Class
不幸的是,这导致strStatus 始终为空白。我在网上找到的所有示例都没有<Status> 节点中的字符串值,总是有子节点构成与<Status> 节点等效的内容。
注意:我已经从 XML 和代码中删除了一堆东西,试图只包含相关的部分。如果我剪得太多,请告诉我,我会提供任何其他需要的信息。
【问题讨论】:
-
看看Using XmlSerializer to create an element with attributes and a value but no sub-element,它说明了如何在c#中使用
[XmlText]属性来做到这一点......这是相同答案的vb.net版本:Class to serialise/deserialise xml file。跨度>
标签: xml vb.net xmlserializer