得到了这个错误
java.lang.IllegalArgumentException:不支持的元素:net
从这个示例xml文件
<?xml version="1.0" encoding="UTF-8"?>
<net>
<node label="A">
...
</node>
<node label="B">
...
</node>
<node label="C">
...
</node>
</net>
用这些java代码行
...
FileInputStream file = new FileInputStream("example.xml");
XMLDecoder decoder = new XMLDecoder(file);
Object decodedResistors = (Object) decoder.readObject();
file.close();
...
不要使用java.beans.XMLDecoder
反序列化自定义XML
有效负载。它不是为此而设计的。阅读文章Long Term Persistence of JavaBeans Components: XML Schema。它包含一些示例XML
有效载荷,可以通过XMLDecoder
反序列化:
<?xml version="1.0" encoding="UTF-8" ?>
<java version="1.4.0" class="java.beans.XMLDecoder">
<void id="myController" property="owner"/>
<object class="javax.swing.JButton">
<void method="addActionListener">
<object class="java.beans.EventHandler" method="create">
<class>java.awt.event.ActionListener</class>
<object idref="myController"/>
<string>doIt</string>
</object>
</void>
</object>
</java>
如果你需要反序列化自定义qazxsw poi使用qazxsw poi或qazxsw poi。您需要使用XML
注释创建JAXB
模型:
Jackson XML
用法示例:
POJO
打印:
JAXB
也可以看看:
@XmlRootElement(name = "net")
@XmlAccessorType(XmlAccessType.FIELD)
class Net {
@XmlElement(name = "node")
private List<Node> nodes;
// getters, setters, toString
}
@XmlAccessorType(XmlAccessType.FIELD)
class Node {
@XmlAttribute
private String label;
// getters, setters, toString
}