将XML文件的任一标记与Go中的encoding/xml
包中的结构字段匹配是否可行?
例如,在以下XML文件中:
<person>
<food type="fruit" />
<furniture type="refrigerator" />
<food type="vegetable" />
<food type="fruit" />
<person>
我可以在相应订单的food
字段内获取furniture
和person
吗?
所以我想要的是如下:
main.Person{main.Food{Type:"fruit"}, main.Furniture{Type:"refrigerator"}, main.Food{Type:"vegetable"}, main.Food{Type:"fruit"}}
而不是
main.Person{Food:[]main.Food{main.Food{Type:"fruit"}, main.Food{Type:"vegetable"}, main.Food{Type:"fruit"}}, Furniture:[]main.Furniture{main.Furniture{Type:"refrigerator"}}}
这是因为我必须按时间顺序将person
内的每个项目都取出,而后一个示例仅在每个子标签内对项目进行排序。所以我不知道后者中furniture
标签何时发生,但在这种情况下可以进入前者 - 第3位。
感谢。
答案 0 :(得分:2)
这可能与Does XML care about the order of elements?有关。
基本上,如果没有XSD (XML Schema Definition),则无法指定处理或显示XML元素的顺序。
如果您使用有效的XSD处理XML,它可能会有效。
查看go-xsd。