首页 > 解决方案 > 将 C# 中的 XML 解析为字符串

问题描述

我有以下 XML 结构:

<BaseResponse>
  <StatusCode>0</StatusCode>
  <Text>success</Text>
  <DataObject>1111-1111-2222-121212-12121</DataObject>
</BaseResponse>

XmlSerializer在 C# 中使用将 XML 序列化为 C# 对象:

public class BaseResponse
{
    public int StatusCode { get; set; }
    public string Text { get; set; }
    public string DataObject { get; set; }

    public static BaseResponse Get(string xmlResponse)
    {
        XmlSerializer serializer = new XmlSerializer(typeof(BaseResponse));
        using (StringReader reader = new StringReader(xmlResponse))
        {
            var responseObj = (BaseResponse)(serializer.Deserialize(reader));
            return responseObj;
        }
    }
}

这工作没有任何问题。但在某些情况下,节点DataObject也包括子节点。例如像这样(真的可以是任何孩子):

<BaseResponse>
  <Status>0</Status>
  <Text>success</Text>
  <DataObject>
    <DetailStatus>
        <Author>Peter</Author>
        <DateCreated>21.08.2021 19:00:05</DateCreated>
    </DetailStatus>
  </DataObject>
</BaseResponse>

现在,使用我现有的序列化机制无法解析此 XML。有没有办法告诉将XmlSerializer节点的子节点解析DataObject为字符串(如果有)。所以这BaseResponse.DataObject会将子节点作为字符串返回。

像这样:

"<DetailStatus><Author>Peter</Author><DateCreated>21.08.2021 19:00:05</DateCreated></DetailStatus>"

提前致谢!

标签: c#xmlxmlserializer

解决方案


推荐阅读