Я хотел бы иметь возможность отмечать мою структуру, не требуя знать, какой уровень будет вложен в XML-документ. Другими словами, я хочу, чтобы иметь возможность написать:Контекстно-агностические теги XML-структуры
type Elem struct {
Datum string `xml:"datum"`
}
И есть ли она работать на обоих
<elem>
<datum>Hello</datum>
</elem>
И
<list>
<elem>
<datum>Hello</datum>
</elem>
</list>
Однако, для того, чтобы последний пример работать (при попытке декодирования в []Elem
), мне нужно использовать тег xml:"elem>datum"
, который неправильно декодирует первый пример. Есть ли способ определить тег XML, не зная, как будет внедрена структура? Смотрите здесь для простого примера:
http://play.golang.org/p/LpI2vKFpNE
Ах, это имеет смысл. Я пробовал что-то подобное, но это не сработало по независящей причине: http://play.golang.org/p/Nklq6nUnk9 (в основном, unmarshalling, кажется, удаляет внутренний кусок '[] Elem' и заменяет его новым один, поэтому любые ссылки, которые у вас есть на исходный фрагмент, не будут изменены с помощью немаршаллированных данных. Спасибо, это сводило меня с ума. Принято, +1. – weberc2