加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何构造类以在同一XML节点中输出属性和简单字符串

发布时间:2020-12-16 22:48:13 所属栏目:百科 来源:网络整理
导读:鉴于 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:

<?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和代码中删除了一堆东西,试图只包含相关的部分.如果我减少了太多请告诉我,我将提供任何其他所需的信息.

解决方法

您需要为Status元素添加另一个类,因为它包含多个成员.

Public Class Response

    <XmlAttribute> Public Version As Integer
    Public Status As Status

End Class

Public Class Status

    <XmlAttribute> Public StatusCode As String
    <XmlText> Public Text As String

End Class

您可以根据需要使用属性以及重命名成员,并使用xml属性中的输出名称对它们进行装饰.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读