我有xml文档(你可以从web请求中查找它here)。解析xml元素到类
我需要得到的CCY,base_ccy,购买和销售来自每个 “EXCHANGERATE” 元素的属性值:
<exchangerate ccy="EUR" base_ccy="UAH" buy="10.81284" sale="10.81284"/>
我手动创建的类EXCHANGERATE,这看起来是这样的:
[Serializable]
public class ExchangeRate
{
[XmlAttribute("ccy")]
public string Ccy
{ get; set; }
[XmlAttribute("base_ccy")]
public string Base_ccy
{ get; set; }
[XmlAttribute("buy")]
public string Buy
{ get; set; }
[XmlAttribute("sale")]
public string Sale
{ get; set; }
}
,并试图反序列化的XML元素“EXCHANGERATE”(这是我从整个XML文档分离所)在汇率类的实例以这种方式:
private ExchangeRate DesereilizeXMLNode(XmlNode node)
{
XmlSerializer mySerializer = new XmlSerializer(typeof(ExchangeRate));
TextReader reader = new StringReader(node.OuterXml);
return (ExchangeRate)mySerializer.Deserialize(reader);
}
当我调试DesereilizeXMLNode方法时,我调用反序列化方法时收到异常。 Grid元素第一行MainWindow.xaml中的异常是XAMLParseException(这很奇怪),我认为它不适合调用异常。
问题是:我哪里错了?试图以这种方式从xml-element创建对象实例时我错了吗?也许我试图反序列化只有XML属性没有整个XML文档的反序列化时,我犯了错误?
我更新了xml-response的链接。但我的目标不是反序列化整个XML文档,因为我并不真正需要它的大部分。整个文档只需要3行。所以我想我可能只反序列化我需要的xml节点。是否有任何其他选项来创建具有属性的单个XML元素的对象? –
看来我可以通过这种方式获取属性值。其实这不是一个反序列化,但我想没有必要在我的情况下使用它。感谢帮助! –