java 生成xml并转为字符串的方法
作者:cat_book_milk 发布时间:2023-01-07 08:27:30
标签:java,xml,字符串
如下所示:
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.apache.commons.io.output.ByteArrayOutputStream;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class test {
private String createXml() {
String xmlString = "";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.newDocument();
document.setXmlStandalone(true);
Element itemInfo = document.createElement("ItemInfo");
document.appendChild(itemInfo);
Element itemStatistics = document.createElement("ItemStatistics");
itemStatistics.setTextContent("商品统计");
itemInfo.appendChild(itemStatistics);
Element items = document.createElement("Items");
itemInfo.appendChild(items);
// 此处可以循环添加
Element item = document.createElement("Item");
items.appendChild(item);
Element itemName = document.createElement("ItemName");
itemName.setTextContent("iPhone");
item.appendChild(itemName);
Element itemNum = document.createElement("ItemNum");
itemNum.setTextContent("3");
item.appendChild(itemNum);
Element itemValue = document.createElement("ItemValue");
itemValue.setTextContent("1000000");
item.appendChild(itemValue);
Element remark = document.createElement("Remark");
remark.setTextContent("配送");
itemInfo.appendChild(remark);
TransformerFactory transFactory = TransformerFactory.newInstance();
Transformer transformer = transFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource domSource = new DOMSource(document);
// xml transform String
ByteArrayOutputStream bos = new ByteArrayOutputStream();
transformer.transform(domSource, new StreamResult(bos));
xmlString = bos.toString();
System.out.println(xmlString);
} catch (Exception e) {
e.printStackTrace();
}
return xmlString;
}
}
结果:
<?xml version="1.0" encoding="UTF-8"?>
<ItemInfo>
<ItemStatistics>商品统计</ItemStatistics>
<Items>
<Item>
<ItemName>iPhone</ItemName>
<ItemNum>3</ItemNum>
<ItemValue>1000000</ItemValue>
</Item>
</Items>
<Remark>配送</Remark>
</ItemInfo>
去掉头文件
<?xml version="1.0" encoding="utf-8"?>
的办法暂时只能想到:
xmlString.substring(38)
来源:https://blog.csdn.net/cat_book_milk/article/details/52954637


猜你喜欢
- 本文实例为大家分享了Android实现房贷计算器的具体代码,供大家参考,具体内容如下fangdai(activity)package com
- 我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要在后台处理一大堆数据,但还要使用户界面处于可操作状态;或者你的程序需要访问一些
- 最近因为赶项目进度,因此将本来要用原生控件实现的界面,自己做了H5并嵌入webview中。发现点击H5中 input type="
- 本文实例讲述了Java 8 Stream 的终极技巧——Collectors 功能与操作方法。分享给大家供大家参考,具体如下:1. 前言昨天
- 1. 前言不知道小伙伴对于日期字段,在项目中都是如何处理的,是单独给每个字段都自定义日期格式还是做全局格式设置?这个我之前啊,是
- 详解Kotlin中的面向对象(二)在Kotlin中的面向对象(一)中,介绍了Kotlin类的相关操作,本文将在上文的基础上,继续介绍属性、接
- 传统的单例写法解决了什么问题首先,在大多数情况下(不包含面试),传统的单例写法已经完全够用了。通过 synchronized 关键字解决了多
- 简介:顺序一致性内存模型是一个理论参考模型,处理器的内存模型和编程语言的内存模型都会以顺序一致性内存模型作为参照。1、数据竞争和顺序一致性当
- 执行引擎也只有几个概念, JVM方法调用和执行的基础数据结构是 栈帧, 是内存区域中 虚拟机栈中的栈元素, 每一个方法的执行就对应着一个栈帧
- JAVA基础八股文Switch能支持哪些类型?jdk5之前,switch能够作用在byte,short,char,int(实际上都是提升为i
- 本文实例讲述了C#实现读取DataSet数据并显示在ListView控件中的方法。分享给大家供大家参考。具体如下:/*lvStudentLi
- 前言对于Android注解,或多或少都有一点接触,但相信大多数人都是在使用其它依赖库的时候接触的。因为有些库如果你想使用它就必须使用它所提供
- 1.什么时候用String?什么时候用StringBuilder?字符串一旦创建就不可修改大小,每次使用System.String类中的方法
- java arrayList遍历的四种方法及Java中ArrayList类的用法package com.test;import java.u
- 一.什么是多渠道打包在不同的应用市场可能有不同的统计需求,需要为每个应用市场发布一个安装包,这里就引出了Android的多渠道打包。在安装包
- 实现方式和继承方式有什么区别呢?*区别:*继承Thread:线程代码存放在Thread子类run方法中*实现Runnable:线程代码存放在
- 本文实例为大家分享了android自定义控件实现简易时间轴的具体代码,供大家参考,具体内容如下之前项目需要写一个消费记录,类似于时间轴似的控
- Javaweb获取表单数据的几种方式一、通过键值对的形式获取表单数据getParameter(String name):通过key,返回一个
- 判断JSONObject是否存在某个KeyJSONObject jsonObj = new JSONObject();jsonObj.put
- Android:AIDL和远程Service调用本讲的内容,理解起来很难,也许你看了很多资料也看不明白,但是用起来缺简单的要命。所以我们干脆