以下のxmlを逆シリアル化する必要があります。私はそれに(もっと)精通しているので、xmlserializerを使いたいです。この xml は正しく構築されていないと思いますが、変更できません。以下は、カテゴリ オブジェクトのリストを表しています。を使用してデシリアライズしようとすると
xmlserializer(typeof(List<Category>))
次のエラーが表示されます:「categories xmlns='' is not expected」
<?xml version="1.0" encoding="utf-8" ?>
<categories>
<category id="16" name="Exports" parent_id="13"/>
<category id="17" name="Imports" parent_id="13"/>
<category id="3000" name="Income Payments & Receipts" parent_id="13"/>
<category id="125" name="Trade Balance" parent_id="13"/>
<category id="127" name="U.S. International Finance" parent_id="13"/>
</categories>
それが私がしなければならないことであれば、これらをデシリアライズするためにある種のダミークラスを作成してもかまいません。これが私のカテゴリクラスです
[XmlType("category")]
public class Category
{
[XmlAttribute("id")]
public int ID { get; set; }
[XmlAttribute("parent_id")]
public int ParentID { get; set; }
[XmlAttribute("name")]
public string Name { get; set; }
}
私のコード:
XmlSerializer serializer = new XmlSerializer(typeof(List<Category>));
StringReader reader = new StringReader(xml);
List<Category> obj = null;
using (System.Xml.XmlReader xmlReader = System.Xml.XmlReader.Create(reader))
{
obj = (List<Category>)serializer.Deserialize(xmlReader);
}
return obj;