Go 구조에서 XML 문서를 구성하는 작업은 특히 처리할 때 문제가 될 수 있습니다. 다양한 요소 이름을 사용합니다. 질문이 생깁니다. XML 마샬링 프로세스 중에 동적 요소 이름을 허용하는 Go 구조체를 정의할 수 있습니까?
Go 문서 구조체의 XMLName 필드는 문자열이 아닌 xml.Name 유형이어야 함을 나타냅니다. 이 구조체에는 "Space"와 "Local"이라는 두 개의 필드가 포함되어 있습니다. 동적 요소 이름을 설정하려면 xml.Name 유형 내에서 "로컬" 필드를 수정합니다.
type Person struct { XMLName xml.Name E1 string `xml:"ELEM1"` // ... }
이 예에서는 XMLName.Local에 저장된 값을 기반으로 요소 이름이 "Person" 또는 "Sender"인 구조체가 있습니다. field.
import ( "encoding/xml" "fmt" ) type Person struct { XMLName xml.Name E1 string `xml:"ELEM1"` // ... } func main() { person := Person{XMLName: xml.Name{Local: "Person"}, E1: "Value1"} sender := Person{XMLName: xml.Name{Local: "Sender"}, E1: "Value1"} // Marshal the struct into XML personXML, _ := xml.Marshal(person) senderXML, _ := xml.Marshal(sender) fmt.Println(string(personXML)) fmt.Println(string(senderXML)) }
이 예는 두 개의 서로 다른 XML 문서를 생성합니다. 하나는 요소 이름이 "Person"이고 다른 하나는 요소 이름이 "Sender"입니다.
이 예제의 대화형 버전을 보려면 Go Playground를 방문하세요. http://play.golang.org/p/bzSutFF9Bo
위 내용은 Go에서 동적 이름을 사용하여 XML 요소를 어떻게 마샬링할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!