Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用XStream(部分)反序列化有错误的xml_Java_Xml_Xstream - Fatal编程技术网

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

Java 如何使用XStream(部分)反序列化有错误的xml,java,xml,xstream,Java,Xml,Xstream,假设我有一个如下所示的xml文件: <list> <item> <id>123</id> <name>someName</name> </item> <item> <id>234</id> <name>anotherName</name> </item> <item> <id>345<

假设我有一个如下所示的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>
到目前为止还不错。但是,我现在遇到了一个案例,其中输入了以下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>

123
名字
234
布拉布拉
345
阿蒂尔名称
是否有办法将我的代码更改为“更健壮”,这样我就可以在不知道“atagunnowntome”标记的情况下获得id为123和345的项目?

是的,您可以

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

这些方法从XStream 1.4.5开始就可用

<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>
XStream xstream = new XStream();
xstream.ignoreUnknownElements();
XStream xstream = new XStream();
xstream.ignoreUnknownElements("somePattern");