Чтение внутреннего текста использования элемента XML Идет

Я пытаюсь считать 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 как часть байтов?

8
задан Adam Sheehan 27 July 2010 в 16:03
поделиться

1 ответ

В зависимости от языковой спецификации вы должны иметь возможность делать string ([] byte (charData)) .

[] байт -> строка - это особый случай преобразования типа. Обычно новый тип и исходный тип должны иметь один и тот же базовый тип (т.е. xml.CharData и [] byte)

4
ответ дан 6 December 2019 в 00:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: