Próbuję odczytać plik XML w programie Go przy użyciu pakietu xml (http://golang.org/pkg/xml/).Czytanie wewnętrznego tekstu elementu XML za pomocą Go
Mój problem polega na tym, że nie jestem pewien, jak czytać wewnętrzny tekst elementu. Załaduję dokument do pliku xml.Parser, a następnie wywołuję funkcję parser.Token(), aby przejść przez plik. I sprawdzić, co token jest za pomocą następujących czynności:
token, err := parser.Token()
if element, ok := token.(xml.StartElement); ok {
// process as a start element. I can read the element name and attributes here
}
if charData, ok := token.(xml.CharData); ok {
// process as text. How do I read the text data?
}
Typ xml.CharData jest zdefiniowany jako:
type CharData []byte
ale nie wydaje się użyć zmiennej charData jako tablica bajtów do przekonwertowania na ciąg znaków. Jedyną metodą zdefiniowaną dla CharData jest skopiowanie tokena, ale to tylko daje kolejną kopię zmiennej CharData. Próbowałem kilka rzeczy, ale nie kompilacji:
innerText := string(charData)
innerText := string(charData[0:])
innerText := string(charData[0]) // this compiled but is not what I want
Czy istnieje inny sposób traktować zmienną xml.CharData jak kromka bajtów?
Niesamowite, to wystarczyło. Ciągle przeglądałem specyfikację językową, ale nigdy tego nie widziałem. Teraz muszę usiąść i dokładnie przeczytać specyfikację. –