java 输出xml_Java处理XML之输出XML

输出文档:

方法1:

使用一个 什么也不做的转换器(do-nothing

transformation);为了在输出中包含一个DOCTYPE节点,还要设置输出属性SYSTEM和PUBLIC标识符。具体步骤是:

//构造一个

do-nothing

transformation

Tranformer t =

TranformerFactory.newInstance().newTransformer();

//设置output的属性,来获得一个DOCTYPE节点

t.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,

systemIdentifier);

t.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC,

publicIdentifier);

//设置缩进

t.setOutputProperty(OutputKeys.INDENT,

“yes”);

t.setOutputProperty(OutputKeys.METHOD,

“xml”);

t.setOutputProperty(“{http://xml.apache.org/xslt}indent-amount”,”2”);

//申请一个do-nothing

transformation并向一个文件中输出

t.transform(new DOMSource(doc), new

StreamResult(new FileOutputStream(file)));

方法2:

使用LLserializer接口:

DOMImplementation impl =

doc.getImplementation();

DOMImplementationLS implLS =

(DOMImplementationLS)impl.getFeature(“LS”, “3.0”);

LSSerializer ser =

implLS.createLSSerializer();

//如果想要设置空格和换行:

ser.getDomConfig().serParameter(“format-pretty-print”,

true);

//可以将document转换成一个字符串:

String ser = ser.writeToString(doc);

//如果想要直接向文件里写入:

LSOutput out = implLS.createLSOutput();

out.setEncoding(“UTF-8”);

out.setByteStream(Files.newOutputStream(path));

ser.write(doc, out);

使用StAX写输出XML文档:

//从一个输出流(OutputStream)上构造一个XMLStreamWriter:

XMLOutputFactory factory =

XMLOutputFactory.newInstance();

XMLStreamWriter writer =

factory.createXMLStreamWriter(out);

//为了处理XML头部:

writer.writeStreamDocument();

writer.writeStartElement(name);

//添加属性:

writer.writeAttribute(name,value);//这里可以再次调用writeStartElement后者写字符:

writer.writeCharacters(text);

//当写完所有的子节点后,调用:

writer.EndElement(name);//这样将关闭当前元素

//如果要写一个没有子节点的元素,则:

writer.wirteEmptyElement(name);

//最后文档的最后,调用:

writer.writeEndDocument();//这会使所有打开的元素关闭

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值