求 Java序列化对象转xml方法....

Python014

求 Java序列化对象转xml方法....,第1张

 /** 这里应用了JAVA的Marshall方法

      * 对象转xml

      * 返回xml

      * @param tXLife

      * @return

      */

public static String tXLiftToXML(com.TXLife tXLife){

String xml=""

     try {

ByteArrayOutputStream out = new ByteArrayOutputStream()

JAXBContext jc = JAXBContext

.newInstance("com")  //包的命名空间

Marshaller m = null

synchronized (jc) {

m = jc.createMarshaller()

}

m.setProperty(Marshaller.JAXB_ENCODING, "GBK")

m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE)

m.marshal(tXLife, out)

xml=out.toString() //赋值

} catch (Exception e) {

xml=null

}

     return xml

}

序列化和反序列化并不是C#独有的,包括java、php、js等都可以做到。 序列化是将对象状态转换为可保持或传输的格式的过程,比如转化为二进制、xml、json等的过程。 与序列化相对的是反序列化,它将流转换为对象,也就是将在序列化过程中所生成的...

下面是在D盘下,People.xml文件:

Plain Text code?

<?xml version="1.0" encoding="ISO-8859-1"?>

<people>

<person>

<first>Dr. Bunsen</first>

<last>Honeydew</last>

</person>

<person>

<first>Gonzo</first>

<last>The Great</last>

</person>

<person>

<first>Phillip J.</first>

<last>Fry</last>

</person>

</people>

下面是java文件:

Java code?

import java.util.ArrayList

import nu.xom.Builder

import nu.xom.Document

import nu.xom.Elements

public class People extends ArrayList<Person>{

public People(String fileName) throws Exception{

Document doc = new Builder().build(fileName)

Elements elements = doc.getRootElement().getChildElements()

for(int i = 0i<elements.size()i++)

add(new Person(elements.get(i)))

}

public static void main(String[] args) throws Exception{

People p = new People("d:\\People.xml")

System.out.println(p)

}  

}

运行环境是netbeans 8.0.2,错误如下所示:

Plain Text code?

Exception in thread "main" com.sun.org.apache.xerces.internal.util.URI$MalformedURIException: Opaque part contains invalid character: \

at com.sun.org.apache.xerces.internal.util.URI.initializePath(URI.java:1142)

at com.sun.org.apache.xerces.internal.util.URI.initialize(URI.java:702)

at com.sun.org.apache.xerces.internal.util.URI.<init>(URI.java:314)

at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.expandSystemId(XMLEntityManager.java:2037)

at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:612)

at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1300)

at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDocumentEntity(XMLEntityManager.java:1252)

at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.setInputSource(XMLDocumentScannerImpl.java:257)

at com.sun.org.apache.xerces.internal.parsers.DTDConfiguration.parse(DTDConfiguration.java:508)

at com.sun.org.apache.xerces.internal.parsers.DTDConfiguration.parse(DTDConfiguration.java:590)

at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)

at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)

at nu.xom.Builder.build(Unknown Source)

at nu.xom.Builder.build(Unknown Source)

at xml.People.<init>(People.java:21)

at xml.People.main(People.java:27)

Java Result: 1