XML을 맵으로 직접 역마샬링
XML을 맵으로 직접 역마샬링하면 중간 구조체 변환을 제거하여 데이터 처리를 최적화할 수 있습니다. 단계.
구현:
이를 달성하려면 xml.Unmarshaller 인터페이스를 구현하는 유형을 생성하여 XML 데이터를 map[string]string.
type classAccessesMap struct { m map[string]string } // UnmarshalXML implements the xml.Unmarshaller interface func (c *classAccessesMap) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { c.m = make(map[string]string) var key, val string for { t, _ := d.Token() switch tt := t.(type) { // TODO: parse the inner structure case xml.StartElement: fmt.Println(">", tt) case xml.EndElement: fmt.Println("<", tt) if tt.Name == start.Name { return nil } if tt.Name.Local == "enabled" { c.m[key] = val } } } }
사용법:
XML 데이터를 맵에 직접 매핑하려면 비정렬 작업에 사용자 정의 유형을 적용하세요.
// Unmarshalling into a map var cm classAccessesMap err := xml.Unmarshal([]byte(`<classAccesses>\n <apexClass>AccountRelationUtility</apexClass>\n <enabled>true</enabled>\n</classAccesses>`), &cm) if err != nil { fmt.Println(err) }
이 접근 방식은 이중 변환의 오버헤드를 방지하여 데이터 처리를 간소화하여 대용량 데이터의 성능을 향상시킵니다. 세트.
위 내용은 최적화된 데이터 처리를 위해 XML을 Go 맵으로 직접 역마샬링하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!