Как десериализовать список из xml без родительского элемента множественного числа? - PullRequest
3 голосов
/ 07 декабря 2011

Я бы хотел десериализовать таблицу 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; }
}

1 Ответ

5 голосов
/ 07 декабря 2011

Попробуйте установить атрибуты, как показано ниже. Обратите внимание, что вам придется изменить тип 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; }
}
...