<?xml version="1.0" encoding="UTF-8"?>
<net>
<node label="A">
...
</node>
<node label="B">
...
</node>
<node label="C">
...
</node>
</net>
...
FileInputStream file = new FileInputStream("example.xml");
XMLDecoder decoder = new XMLDecoder(file);
Object decodedResistors = (Object) decoder.readObject();
file.close();
...
不要将java.beans.xmlDecoder
用于反序列化自定义XML
有效负载。它不是为这个设计的。阅读文章JavaBeans组件的长期持久性:XML模式。它包含一些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>
如果需要反序列化自定义XML
,请使用JAXB
或Jackson XML
。您需要创建一个具有JAXB
注释的POJO
模型:
@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
}
用法示例:
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.io.File;
import java.util.List;
public class JaxbApp {
public static void main(String[] args) throws Exception {
File xmlFile = new File("./resource/test.xml").getAbsoluteFile();
JAXBContext jaxbContext = JAXBContext.newInstance(Net.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
Object net = unmarshaller.unmarshal(xmlFile);
System.out.println(net);
}
}
Net{nodes=[Node{label='A'}, Node{label='B'}, Node{label='C'}]}
我正在尝试‘获取’一个rss提要。 当我检查“res”里面是什么的时候。它似乎得到了整个XML。但后来,我试图解码它,我得到:
当我构建我的应用程序时,我得到了以下错误。任何帮助都将不胜感激。 根:生成。格拉德尔 settings.gradle 应用程序:生成。格拉德尔 失败:生成失败,出现异常*其中:设置文件“/Users/Documents/android/MyApplication5/Settings。gradle“*出了什么问题:无法编译设置文件”//Users/anand/Documents/android/My
我正在尝试为我的项目使用插件,但在运行命令时得到错误。谁能帮助解决这个问题。提前道谢。 我的Build.sbt 名称:=“包装” 版本:=“1.0” enablePlugins(JDKPackagerPlugin) 我的主要班级 我的plugins.sbt
本文向大家介绍有哪些标签是不支持伪元素的?相关面试题,主要包含被问及有哪些标签是不支持伪元素的?时的应答技巧和注意事项,需要的朋友参考一下 首先我们要知道伪元素有哪些: ::after ::before ::first-letter ::fist-line (单双冒号皆可) ::selection ::backdrop (仅双冒号) 伪元素虽然强大,但是还是有一些特定的标签是不支持伪元素 befo
我需要在JAX-WS中通过客户端连接到外部服务器。客户端在Wildfly 8上运行。使用Java8连接是正常的。但我在Java7中连接到服务器时遇到了问题(我尝试了u45、67、79)。服务器端安全性的属性为https://www.ssllabs.com/ssltest/analyze.html?d=app.bundesnetzagentur.de 在部分“密码套件”中有四个密码。源代码不应支持J
26.2. Spring的元数据支持 为了与Spring提供的其他重要概念的抽象相一致,Spring提供了一个对元数据实现的门面(facade), 以org.springframework.metadata.Attributes接口的形式来实现。 这个门面因以下几个原因而显得很有价值: 尽管Java 5提供了语言级的元数据支持,但提供这样一个抽象还是能带来价值: Java 5的元数据是静态的。它是