Я пытаюсь считать XML-файл в Движении с помощью xml пакета (http://golang.org/pkg/xml/).
Моя проблема состоит в том, что я не уверен, как прочитать внутренний текст элемента. Я загружаю документ в xml. Синтаксический анализатор и затем называет синтаксический анализатор. Маркер () для перемещения через файл. Я проверяю для наблюдения то, что маркер использует следующее:
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 как часть байтов?
В зависимости от языковой спецификации вы должны иметь возможность делать string ([] byte (charData))
.
[] байт
-> строка
- это особый случай преобразования типа. Обычно новый тип и исходный тип должны иметь один и тот же базовый тип (т.е. xml.CharData и [] byte)