要解组的示例 xml 文件
<category>
<id>abcat0010000</id>
<name>Gift Center</name>
<path>
<category>
<id>cat00000</id>
<name>Best Buy</name>
</category>
<category>
<id>abcat0010000</id>
<name>Gift Center</name>
</category>
</path>
<subCategories>
<category>
<id>pcmcat140000050035</id>
<name>Capturing Photos & Videos</name>
</category>
<category>
<id>pcmcat140000050036</id>
<name>Listening to Digital Music</name>
</category>
<category>
<id>pcmcat140000050037</id>
<name>Computing Made Easy</name>
</category>
<category>
<id>pcmcat140000050039</id>
<name>Simple GPS Navigation</name>
</category>
<category>
<id>pcmcat140000050040</id>
<name>Playing Video Games</name>
</category>
<category>
<id>pcmcat140000050041</id>
<name>Watching HDTV</name>
</category>
<category>
<id>pcmcat140000050042</id>
<name>Enjoying Favorite Movies</name>
</category>
<category>
<id>abcat0012000</id>
<name>Him</name>
</category>
<category>
<id>abcat0013000</id>
<name>Teens</name>
</category>
<category>
<id>abcat0014000</id>
<name>Kids</name>
</category>
</subCategories>
</category>
我的 java 对象
@XmlRootElement(name="category")
public class Category {
String id;
String name;
public String getId() {
return id;
}
@XmlElement
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
@XmlElement
public void setName(String name) {
this.name = name;
}
}
两种“类别”之间的关系有点混乱
@XmlRootElement("category")
public class ExtendedCategory extends Category {
/*String id;
String name;*/
List<Category> path;
List<Category> subCategories;
/*public String getId() {
return id;
}
@XmlElement
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
@XmlElement
public void setName(String name) {
this.name = name;
}
*/
public List<Category> getPath() {
return path;
}
@XmlElementWrapper(name="path")
@XmlElement(name="category", type=Category.class)
public void setPath(List<Category> path) {
this.path = path;
}
public List<Category> getSubCategories() {
return subCategories;
}
@XmlElementWrapper(name="subCategories")
@XmlElement(name="category", type=Category.class)
public void setSubCategories(List<Category> subCategories) {
this.subCategories = subCategories;
}
}
如果我将顶级 xml 元素更改为其他内容(+扩展类别中的相应更改),我遇到了无法将类别转换为 ExtendedCategory 的异常情况
如何为多个元素解组具有相同名称的对象?