【发布时间】:2014-04-25 14:23:34
【问题描述】:
我不知道是否可以在 C# 中将 xml 节点结构作为字符串获取。在 Web 服务调用之后,我需要将 opticxml 节点内的所有内容读入一个简单的纯字符串。 我有这样的xml:
<opticxml>
<Optic>
<header>
...
</header>
<items>
<item>...</item>
<item>...</item>
...
</item>
<experimental>
<frame>...</frame>
<lens>...</lens>
</experimental>
</Optic>
<opticxml>
然后我有这样的响应类:
[XmlRoot("Data")]
public class Data4Response
{
...
[XmlElement("opticxml")]
public string opticxml { get; set; }
}
我从 WS 调用得到正确响应,而不是将 BASE64 编码字符串转换为字符串 (UTF8),当我想将其解析为 Data4Response 类时,我得到了异常。
public DataResponse()
{
Data = new Data4Response();
...
}
public static DataResponse DeserializeMessage(string input)
{
...
ret = (DataResponse)s.Deserialize(reader);
...
}
解决办法是什么?我应该如何配置以字符串形式获取 Optic 节点的 XmlElement("opticxml")?
感谢您的帮助。
【问题讨论】:
-
我会创建一个递归扩展方法。字符串 xmlString(此 XmlElement)。然后对于每个子元素,返回 child.xmlString()
标签: c# xml serialization