Нам нужно использовать «веб-сервис», который передает крайне уродливый XML.Он не разработан нами, и нет никаких шансов заставить его разработчиков понять правильный XML.
К вашему сведению, этот веб-сервис также принимает тот же тип XML в параметре HTTP GET URL (не в запросе).body) - и ребята, которые его разработали, не понимают, почему это плохая практика.
Итак, какой самый быстрый способ отобразить XML, такой как:
<foo id="document">
<foo id="customer">
<bar name="firstname" value="Joe"/>
<bar name="lastname" value="Smith"/>
<foo id="address">
<bar name="city" value="New York"/>
<bar name="country" value="USA"/>
</foo>
</foo>
<bar name="somemoredata1" value="123"/>
<bar name="somemoredata2" value="abc"/>
</foo>
в такие классы:
public class Document
{
public Customer Customer { get; set; }
public int SomeMoreData1 { get; set; }
public string SomeMoreData2 { get; set; }
}
public class Customer
{
public Address Address { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Address
{
public string City { get; set; }
public string Country { get; set; }
}
используя например.Атрибуты XML Serializer или любой другой способ, который требует как можно меньшего количества стандартного кода.
Я составил имена элементов foo
и bar
, но структура XML, который мне нужно проанализировать, основана наточно такое же соглашение.
Конечно, я мог бы реализовать IXmlSerializable
вручную в этих классах или просто создать Foo
и Bar
классы и использовать их с XmlSerializer
, но ни одна из этих опций, похоже, не подходитхорошее решение.
Заранее спасибо за ответы!