Che*_*oft 80
2008答案 "官方"Java API现在是JAXB - 用于XML绑定的Java API.请参阅Oracle教程.参考实现位于http://jaxb.java.net/
2018年更新 请注意,JDK9中的SE中不推荐使用Java EE和CORBA模块,而是在JDK11中从SE中删除.因此,要使用JAXB,它将需要位于您的例如应用服务器捆绑的现有企业级环境中,或者您需要手动将其引入.
ARK*_*BAN 17
您可能希望查看Simple XML Serialization项目.这是我在.Net中发现的最接近System.Xml.Serialization的东西.
值得一提的是,从版本1.4开始,Java就有了java.beans.XMLEncoder和java.beans.XMLDecoder类.这些类执行的XML编码至少与XML序列化非常相似,在某些情况下可能会为您提供帮助.
如果您的类坚持JavaBeans规范的getter和setter,这个方法很容易使用,您不需要架构.有以下警告:
例如,请采用以下声明:
public class NPair {
public NPair() { }
int number1 = 0;
int number2 = 0;
public void setNumber1(int value) { number1 = value;}
public int getNumber1() { return number1; }
public void setNumber2(int value) { number2 = value; }
public int getNumber2() {return number2;}
}
Run Code Online (Sandbox Code Playgroud)
执行此代码:
NPair fe = new NPair();
fe.setNumber1(12);
fe.setNumber2(13);
FileOutputStream fos1 = new FileOutputStream("d:\\ser.xml");
java.beans.XMLEncoder xe1 = new java.beans.XMLEncoder(fos1);
xe1.writeObject(fe);
xe1.close();
Run Code Online (Sandbox Code Playgroud)
会导致以下文件:
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.7.0_02" class="java.beans.XMLDecoder">
<object class="NPair">
<void property="number1">
<int>12</int>
</void>
<void property="number2">
<int>13</int>
</void>
</object>
</java>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
132963 次 |
| 最近记录: |