Я пытаюсь прочитать XML-файл в Go, используя пакет xml (http://golang.org/pkg/xml/).
Моя проблема в том, что я не уверен, как читать внутренний текст элемента. Я загружаю документ вxml.Parser, а затем вызовите parser.Token () для перемещения по файлу. Я проверяю, использует ли токен следующее:
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?
}
Тип xml.CharData определен как:
type CharData []byte
но я не могу использовать переменную charData в качестве массива байтов для преобразования в строку. Единственный метод, определенный для CharData, - это копирование токена, но это просто дает другую копию CharData.Я попробовал несколько вещей, но они не компилируются:
innerText := string(charData)
innerText := string(charData[0:])
innerText := string(charData[0]) // this compiled but is not what I want
Есть ли другой способ обработки переменной xml.CharData как части байтов?