我正在使用 xStream 来操作 XML。一切都好。放上 XML 存档和其他东西。但是,我有一个问题:
示例:我的 xml 包含一个标签,在这个标签中,我还有一些名为 <comment>
的标签.看一个示例代码:
<comments>
<comment>
<id>1</id>
<desc>A comment</desc>
</comment>
<comment>
<id>2</id>
<desc>Another comment</desc>
</comment>
<comment>
<id>3</id>
<desc>Another one comment</desc>
</comment>
</comments>
而且是渐进的。 我可以在标签内做500个标签。这些评论属于评论类型。
如何使用 xStream 进行序列化以将所有这些标记放入类中?我不知道如何在类中让它接收各种对象。
很明显,我会用一个数组或其他一些东西来做这个。 但我不知道该怎么做。
最佳答案
对于该 XML,您可能希望拥有如下类结构:
public class Comment {
long id
String desc
}
public class Comments {
List<Comment> comments = new ArrayList<Comment>();
}
您的解码逻辑将类似于:
XStream xstream = new XStream();
xstream.alias("comments", Comments.class);
xstream.alias("comment", Comment.class);
xstream.addImplicitCollection(Comments.class, "comments");
Comments comments = (Comments)xstream.fromXML(xml);
此外,正如 Nishan 在评论中提到的,您的 XML 格式不正确。您需要确保您的 <comment>
以 </comment>
结尾而不是 </comments>
.您需要先解决此问题,此答案中的任何代码才能正常工作。
关于java - xStream 问题 - 如何反序列化多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5450275/