使用XStream如何(部分)反序列化xml错误
发布时间:2020-12-16 23:29:17 所属栏目:百科 来源:网络整理
导读:假设我有一个xml文件应该如下所示: list item id123/id namesomeName/name /item item id234/id nameanotherName/name /item item id345/id nameaThirdName/name /item/list 我使用XStream和以下类解析它: class ListXML { public ListItemXML list;}class
假设我有一个xml文件应该如下所示:
<list> <item> <id>123</id> <name>someName</name> </item> <item> <id>234</id> <name>anotherName</name> </item> <item> <id>345</id> <name>aThirdName</name> </item> </list> 我使用XStream和以下类解析它: class ListXML { public List<ItemXML> list; } class ItemXML { public String id; public String name; } 和以下代码: XStream xstream = new XStream(new DomDriver()); xstream.alias("list",ListXML.class); xstream.alias("item",ItemXML.class); xstream.addImplicitCollection(ListXML.class,"item"); ListXML result = (ListXML) xstream.fromXML(in); 到现在为止还挺好.但是,我现在遇到了一个案例,我将以下xml作为输入: <list> <item> <id>123</id> <name>someName</name> </item> <item> <id>234</id> <aTagUnknownToMe>blabla</aTagUnknownToMe> </item> <item> <id>345</id> <name>aThirdName</name> </item> </list> 有没有办法将我的代码更改为“更强大”,所以我可以在不知道“aTagUnknownToMe”标签的情况下获取id为123和345的项目? 解决方法
是的你可以.
XStream xstream = new XStream(); xstream.ignoreUnknownElements(); 要么 XStream xstream = new XStream(); xstream.ignoreUnknownElements("somePattern"); 自XStream 1.4.5起,这些方法就可用了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |