我想将HTML表反序列化为一个对象。但是使用以下代码,它希望<Rows>
作为<tr>
的父级,<Cells>
作为<td>
的父级。我想保留这个类结构。我错过了任何属性声明吗?
<table>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
public class Table
{
[XmlArrayItem("tr")]
public List<Row> Rows { get; set; }
}
public class Row
{
[XmlArrayItem("td")]
public List<Cell> Cells { get; set; }
}
public class Cell
{
public object Value { get; set; }
}
答案 0 :(得分:5)
尝试设置属性,如下所示。请注意,您必须将Value
课程Cell
的类型从object
更改为string
。
[XmlRoot("table")]
public class Table
{
[XmlElement(typeof(Row), ElementName = "tr")]
public List<Row> Rows { get; set; }
}
public class Row
{
[XmlElement(typeof(Cell), ElementName = "td")]
public List<Cell> Cells { get; set; }
}
public class Cell
{
[XmlText(typeof(string))]
public string Value { get; set; }
}