当前位置: 首页 > 知识库问答 >
问题:

如何使用XStream(部分)反序列化有错误的xml

充煌
2023-03-14
<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>
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);
<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>

共有1个答案

诸葛立果
2023-03-14

是的,你可以。

XStream xstream = new XStream();
xstream.ignoreUnknownElements();

XStream xstream = new XStream();
xstream.ignoreUnknownElements("somePattern");

这些方法从XStream1.4.5开始就可用了。

 类似资料:
  • 我在尝试“反序列化”对象时遇到以下错误: 我需要能够使用这个XStream库序列化/反序列化对象,甚至是那些没有参数构造函数的对象。

  • 问题内容: 我正在使用Xstream序列化Job对象。看起来不错。 但是反序列化,我有一个问题: 你们中的一个人以前遇到过这个问题吗? 这是我序列化的方法: 我也尝试这样做: 对于反序列化,我这样做是这样的: XML结构: 如果是,我想听听。提前致谢。 问题答案: fromXML没有文件名,请尝试: 以String形式读取文件内容。 在XStream中,字段名“ id”和“引用”也恰好是“系统属性

  • 问题内容: 由于要执行处理的业务逻辑,因此我正在实现自定义。但是某些部分可以解析为标准方式。这是否可能- 我自己处理一些元素,并让一些嵌套元素自动处理? 这是JSON: 这是项的自定义反序列化器: 现在,我想让GSON解析枚举。我可以自己完成,这只是几行代码,但是我更愿意库做很多。 问题答案: …但是我希望图书馆尽其所能。 好吧,只需使用Gson。 有数据传输对象模式,尤其是Gson映射类,可以完

  • 我正在使用xstream并尝试将列表序列化为XML。我需要一个输出结构 序列化的对象类似于 我的问题与作为对象集合的XStream-Root类似,但我希望在不使用包装对象的情况下这样做。

  • 问题内容: 我试图反序列化以DateTime作为修饰符的类: 但是,当我尝试tro反序列化时,却遇到以下异常: 我用它来反序列化: 还有我的jsonData的示例: 问题答案: 期望使用无参数构造函数。的最新版本没有这样的构造函数。 如果您已固定格式,即。应该只是一个时间戳,那么你可以简单地注册与。它将在内部用于字段。您可以摆脱注释。 您需要添加库。

  • 为了完整起见,我在下面添加了我的代码。 而且