Java数组与XML数据格式的转换
在Java中,将数组转换为XML数据格式以及将XML数据格式转换为数组的方法有很多。这里,我将介绍两种常用的方法:使用DOM解析器和使用JAXB(Java Architecture for XML Binding)。
- 使用DOM解析器将数组转换为XML数据格式:
DOM(Document Object Model)解析器是一种树形结构的解析方式,可以将XML文档解析成一个DOM树。我们可以使用DOM解析器将Java数组转换为XML数据格式。
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList; public class ArrayToXML { public static void main(String[] args) {
Integer[] array = {1, 2, 3, 4, 5}; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.newDocument(); Element root = document.createElement("root");
document.appendChild(root); for (Integer num : array) { Element item = document.createElement("item");
item.setTextContent(num.toString());
root.appendChild(item);
} // 输出XML字符串 TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(document); StreamResult result = new StreamResult(System.out);
transformer.transform(source, result);
}
}
运行上述代码,将输出以下XML数据格式:
<?xml version="1.0" encoding="UTF-8"?><root> <item>1</item> <item>2</item> <item>3</item> <item>4</item> <item>5</item></root>
- 使用JAXB将数组转换为XML数据格式:
JAXB(Java Architecture for XML Binding)是一种将Java对象与XML文档之间进行绑定的技术。通过使用JAXB,我们可以轻松地将Java数组转换为XML数据格式。
首先,需要创建一个表示数组元素的Java类。例如,对于上面的整数数组,我们可以创建一个名为IntegerItem
的类:
import javax.xml.bind.annotation.XmlRootElement; @XmlRootElementpublic class IntegerItem { private Integer value; public Integer getValue() { return value;
} public void setValue(Integer value) { this.value = value;
}
}
接下来,我们可以使用JAXB将数组转换为XML数据格式:
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import java.io.StringWriter; public class ArrayToXML { public static void main(String[] args) {
Integer[] array = {1, 2, 3, 4, 5}; JAXBContext jaxbContext = JAXBContext.newInstance(IntegerItem[].class); Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
IntegerItem[] items = new IntegerItem[array.length]; for (int i = 0; i < array.length; i++) {
items[i] = new IntegerItem();
items[i].setValue(array[i]);
} StringWriter writer = new StringWriter();
marshaller.marshal(items, writer); String xmlString = writer.toString();
System.out.println(xmlString);
}
}
运行上述代码,将输出以下XML数据格式:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><integerItemArray> <item>1</item> <item>2</item> <item>3</item> <item>4</item> <item>5</item></integerItemArray>
同样地,我们也可以将XML数据格式转换为数组。首先,需要创建一个与IntegerItem
类对应的XML解析类,然后使用JAXB的unmarshal
方法将XML数据格式转换为数组。
版权声明:如无特殊标注,文章均为本站原创,转载时请以链接形式注明文章出处。
评论