매우 못생긴 XML을 전달하는 "웹 서비스"를 사용해야합니다. 이것은 우리에 의해 개발 된 것이 아니며, 개발자들로 하여금 적절한 XML을 이해할 수있는 기회가 전혀 없습니다.XmlSerializer 특성을 사용하여이 XML을 구문 분석하려면 어떻게해야합니까?
참고로,이 웹 서비스는 요청 본문이 아닌 HTTP GET URL 매개 변수에서도 동일한 종류의 XML을 허용합니다.이 웹 서비스는 왜 나쁜 습관인지 이해하지 못합니다.
따라서, 이와 같은 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
가진 사람을 사용하지만, 이러한 옵션 중 어느 것도 좋은 해결책이 될 것으로 보인다 없었다.
미리 답변 해 주셔서 감사합니다.
XmlSerialiser로 처리해야합니까? XML을 사용해도 XmlReader로 파싱하고 빌드하는 것이 더 쉽다는 것을 종종 알게됩니다. 결코 미친 XML을 염두에 두지 마십시오. –
XmlSerializer로 구문 분석하는 것이 가장 간단합니다. 더 낫거나 더 쉬운 해결책이 있다면 답을 써보십시오! :) 나는 그것에 대해 궁금해. – Venemo