java字符串转xml_javaXML字符串和XMLDOCUMENT的相互
转换
在做⼀般的XML数据交换过程中,我更乐意传递XML字符串,⽽不是格式化的XML Document。这就涉及到XML字符串和Xml Document的转换问题,说⽩了这是个很简单的问题,本⽂就各种XML解析器分别列举如下,以⽅便⾃⼰今后查阅。
⼀、使⽤最原始的l.parsers,标准的jdk api
// 字符串转XML
String xmlStr = "......";
StringReader sr = new StringReader(xmlStr);
InputSource is = new InputSource(sr);
DocumentBuilderFactory factory = wInstance();
DocumentBuilder wDocumentBuilder();
Document doc = builder.parse(is);
//XML转字符串
TransformerFactory tf = wInstance();
Transformer t = tf.newTransformer();
t.setOutputProperty("encoding","GB23121");//解决中⽂问题,试过⽤GBK不⾏
ByteArrayOutputStream bos = new ByteArrayOutputStream();
String xmlStr = String();
这⾥的XML DOCUMENT为org.w3c.dom.Document
⼆、使⽤dom4j后程序变得更简单
// 字符串转XML
String xmlStr = "......";
Document document = DocumentHelper.parseText(xmlStr);
// XML转字符串
Document document = ...;
String text = document.asXML();
这⾥的XML DOCUMENT为org.dom4j.Document
三、使⽤JDOM
JDOM的处理⽅式和第⼀种⽅法处理⾮常类似
//字符串转XML
String xmlStr = ".....";
StringReader sr = new StringReader(xmlStr);
InputSource is = new InputSource(sr);
Document doc = (new SAXBuilder()).build(is);
//XML转字符串
Format format = PrettyFormat();
format.setEncoding("gb2312");//设置xml⽂件的字符为gb2312,解决中⽂问题XMLOutputter xmlout = new XMLOutputter(format); ByteArrayOutputStream bo = new ByteArrayOutputStream();
xmlout.output(doc,bo);
String xmlStr = bo.toString();
这⾥的XML DOCUMENT为org.jdom.Document
四、JAVASCRIPT中的处理
//字符串转XML
var xmlStr = ".....";
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(xmlStr);
//可以处理这个xmlDoc了
var name = xmlDoc.selectSingleNode("/person/name");
);
使用dom4j解析xml文件//XML转字符串
var xmlDoc = ......;
var xmlStr = l
这⾥的XML DOCUMENT为javascript版的XMLDOM
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论