我有一些xml,需要将其反序列化为一个C#对象,但我不知道如何从xlink:href中获取值。我得到的例外是
“xlink:href”中的名称字符无效。
但是,当我将XmlAttribute值更改为href或xlink时,没有值集。如何使用XmlSerializer获得这个值?
XML示例:
<result xmlns:xlink="http://www.w3.org/1999/xlink">
<items country="nl">
<item name="cube" xlink:href="http://url"/>
<item name="square" xlink:href="http://url"/>
</items>
</result>C#类:
[XmlRoot("result")]
public class Result
{
[XmlArray("items")]
[XmlArrayItem("item")]
public List<Item> Items { get; set; }
}
public class Item
{
[XmlAttribute("name")]
public string Name { get; set; }
[XmlAttribute("xlink:href")]
public string Url { get; set; }
}反序列化代码:
Stream response = GetResponseFromRequest(requestUrl);
var serializer = new XmlSerializer(typeof(Result));
Result result = (Result)serializer.Deserialize(response);发布于 2014-06-23 15:12:50
将命名空间添加到XmlAttribute属性:
public class Item
{
[XmlAttribute("name")]
public string Name { get; set; }
[XmlAttribute("href", Namespace="http://www.w3.org/1999/xlink")]
public string Url { get; set; }
}https://stackoverflow.com/questions/24368655
复制相似问题