У меня есть файл XML, который я получаю от стороннего поставщика.Xml De-Serialization No Root Node
Это не структурированы обычным способом, это в принципе не имеет корня: -
<DG_X
attrib1="Test2"
attrib2="1"
attrib3="12345">TEST-23456</DG_X>
<DG_Y
attrib1="test"
attrib2="Example Text"
attrib3="1"
attrib4="3"
attrib5= 1
attrib6="12412342134">Test-1234567</DG_Y>
Я заинтересован только в первом элементе «DG_X» и мне нужно только его значение «TEST-23456».
Я новичок в Де-Serialistaion, и до сих пор мои попытки провалились: -
[Serializable]
[XmlRoot("DG_X")]
public class DM
{
[XmlText]
public string Value { get; set; }
[XmlAttribute]
public string attrib1 { get; set; }
[XmlAttribute]
public string attrib2 { get; set; }
[XmlAttribute]
public string attrib3 { get; set; }
[XmlIgnore]
[XmlElement("DG_Y")]
public string dg_key { get; set; }
}
Проблема заключается в чтении второго элемента, компилятор сообщает, что есть две корневые элементы. Каков наилучший способ решить эту проблему?
Перед десериализацией вам придется решить проблему «одного корня». Может быть, прочитать его в XmlReader на первом узле, а затем использовать этот читатель для десериализации? –
Невозможно прочитать файл без корня? – Derek
Прочтите, да. Удалить десериализацию на типизированный объект? не знаю, что я знаю, так как он ожидает «корень объекта» в xml –