반응형
XML에서 컨테이너 요소없이 목록으로 역 직렬화
내가 본 모든 예제 XmlSerializer
에서 목록이나 배열이 발생할 때마다 다음과 같은 일종의 컨테이너 요소가 있습니다.
<MyXml>
<Things>
<Thing>One</Thing>
<Thing>Two</Thing>
<Thing>Three</Thing>
</Things>
</MyXml>
그러나 내가 가지고있는 XML에는 위의 것들 과 유사한 컨테이너가 없습니다 . 요소를 반복하기 시작합니다. (부수적으로 XML은 실제로 Google의 Geocode API에서 가져온 것입니다.)
그래서 다음과 같은 XML이 있습니다.
<?xml version="1.0" encoding="UTF-8"?>
<GeocodeResponse>
<status>OK</status>
<result>
<type>locality</type>
<type>political</type>
<formatted_address>Glasgow, City of Glasgow, UK</formatted_address>
<address_component>
<long_name>Glasgow</long_name>
<short_name>Glasgow</short_name>
<type>locality</type>
<type>political</type>
</address_component>
<address_component>
<long_name>East Dunbartonshire</long_name>
<short_name>East Dunbartonshire</short_name>
<type>administrative_area_level_3</type>
<type>political</type>
</address_component>
<!-- etc... -->
</result>
<result>
<!-- etc... -->
</result>
<result>
<!-- etc... -->
</result>
</GeocodeResponse>
안으로 볼 수 있듯이 결과 유형의 어떤없이 요소의 반복 유형의 해당 요소 XmlSerializer를가 기대하는 표시 (또는 모든 문서와 예제 적어도 나는 본 적이). _address_component_도 마찬가지입니다.
현재 내가 가지고있는 코드는 다음과 같습니다.
[XmlRoot("GeocodeResponse")]
public class GeocodeResponse
{
public GeocodeResponse()
{
this.Results = new List<Result>();
}
[XmlElement("status")]
public string Status { get; set; }
[XmlArray("result")]
[XmlArrayItem("result", typeof(Result))]
public List<Result> Results { get; set; }
}
Every time I attempt to deserialize the XML I get zero items in my Result _List_.
Can you suggest how I may get this to work as I'm currently not seeing it?
Use
[XmlElement("result")]
public List<Result> Results { get; set; }
ReferenceURL : https://stackoverflow.com/questions/5271442/deserializing-into-a-list-without-a-container-element-in-xml
반응형
'development' 카테고리의 다른 글
Docker 컨테이너에서 실행되는 Tomcat 8에 Java webapp 배포 (0) | 2021.01.07 |
---|---|
단위 테스트 (MSTest)를 병렬로 실행하는 방법은 무엇입니까? (0) | 2021.01.07 |
raw.github.com의 js 포함 (0) | 2021.01.07 |
XML 스키마 : 루트 요소 (0) | 2021.01.07 |
문자열 리터럴에서 'char *'로의 더 이상 사용되지 않는 변환 (0) | 2021.01.07 |