java 生成xml文件怎么有格式

java 生成xml文件怎么有格式,第1张

需要jdomjar和dom4jjar这两个包

/

将crash信息打包成xml格式

@param hashMap 原始crash信息的hashmap形式

@throws IOException

@throws JDOMException

/

public void BuildXMLDoc(HashMap<String, String> hashMap) throws IOException, JDOMException {

int size = hashMapsize();

Iterator iter = hashMapentrySet()iterator();

MapEntry entry;

String key;

String val;

int id = 1;

// 创建根节点 list;

Element root = new Element("phoneInfo");

// 根节点添加到文档中;

Document Doc = new Document(root);

// 此处 迭代器的遍历 可替换成循环遍历 数据库表的结果集 *** 作;

while (iterhasNext()) {

entry = (MapEntry)iternext();

key = (String)entrygetKey();

val = hashMapget(key);

if (val == null || vallength() == 0)

{

val = "null";

}

// 创建节点 user;

Element elements = new Element("category");

// 给 user 节点添加属性 id;

elementssetAttribute("id", "" + id);

id ++;

// 给 user 节点添加子节点并赋值;

// new Element("name")中的 "name" 替换成表中相应字段,setText("xuehui")中 "xuehui

// 替换成表中记录值;

elementsaddContent(new Element(key)setText(val));

// 给父节点list添加user子节点;

rootaddContent(elements);

}

//带有缩进格式的xml 更美观

Format format = FormatgetPrettyFormat();

XMLOutputter XMLOut = new XMLOutputter(format);

XMLOutoutput(Doc, new FileOutputStream(FileUtilCRASHPATH));

Systemoutprintln("完成了文件写入");

}

上面虽然是对hashmap的遍历,但是对于其他容器的遍历形式不变,只是换成你需要的信息即可

下面是其他文章找到的

生成XML的时候,处理特殊字符

elementaddContent(new CDATA("<xml> content"));

生成XML的时候,设置编码

XMLOutputter XMLOut = new XMLOutputter();

XMLOutsetEncoding("gb2312");

XMLOutoutput(Doc, new FileOutputStream("test1xml"));

import javaioFile;import javaioFileNotFoundException;import javaioFileOutputStream;import javaioIOException;import orgw3cdom;import orgxmlsaxSAXException;import javaxxmlparsers;import javaxxmltransform;import javaxxmltransformdomDOMSource;import javaxxmltransformstream;import javaxxmlxpath;public class Test { public static void main(String[] args) { DocumentBuilderFactory factory=DocumentBuilderFactorynewInstance(); Element theBook=null, theElem=null, root=null; try { factorysetIgnoringElementContentWhitespace(true); DocumentBuilder db=factorynewDocumentBuilder(); Document xmldoc=dbparse(new File("Test1xml")); root=xmldocgetDocumentElement(); theBook=(Element) selectSingleNode("/books/book[name='哈里波特']", root); Systemoutprintln("--- 查询找《哈里波特》 ----"); Element nameNode=(Element)theBookgetElementsByTagName("price")item(0); String name=nameNodegetFirstChild()getNodeValue(); Systemoutprintln(name); output(theBook); Systemoutprintln("=============selectSingleNode(books/book[name='哈里波特'], root)=================="); //--- 新建一本书开始 ---- theBook=xmldoccreateElement("book"); theElem=xmldoccreateElement("name"); theElemsetTextContent("新书"); theBookappendChild(theElem); theElem=xmldoccreateElement("price"); theElemsetTextContent("20"); theBookappendChild(theElem); theElem=xmldoccreateElement("memo"); theElemsetTextContent("新书的更好看。"); theBookappendChild(theElem); rootappendChild(theBook); Systemoutprintln("--- 新建一本书开始 ----"); output(xmldoc); Systemoutprintln("=============================="); //--- 新建一本书完成 ---- //--- 下面对《哈里波特》做一些修改。 ---- //--- 查询找《哈里波特》---- //--- 此时修改这本书的价格 ----- theBookgetElementsByTagName("price")item(0)setTextContent("15");//getElementsByTagName返回的是NodeList,所以要跟上item(0)。另外,getElementsByTagName("price")相当于xpath的"//price"。 Systemoutprintln("--- 此时修改这本书的价格 ----"); output(theBook); //--- 另外还想加一个属性id,值为B01 ---- theBooksetAttribute("id", "B01"); Systemoutprintln("--- 另外还想加一个属性id,值为B01 ----"); output(theBook); //--- 对《哈里波特》修改完成。 ---- //--- 要用id属性删除《三国演义》这本书 ---- theBook=(Element) selectSingleNode("/books/book[@id='B02']", root); Systemoutprintln("--- 要用id属性删除《三国演义》这本书 ----"); output(theBook); theBookgetParentNode()removeChild(theBook); Systemoutprintln("--- 删除后的XML ----"); output(xmldoc); //--- 再将所有价格低于10的书删除 ---- NodeList someBooks=selectNodes("/books/book[price<10]", root); Systemoutprintln("--- 再将所有价格低于10的书删除 ---"); Systemoutprintln("--- 符合条件的书有 "+someBooksgetLength()+"本。 ---"); for(int i=0;i<someBooksgetLength();i++) { someBooksitem(i)getParentNode()removeChild(someBooksitem(i)); } output(xmldoc); saveXml("Test1_Editedxml", xmldoc); } catch (ParserConfigurationException e) { eprintStackTrace(); } catch (SAXException e) { eprintStackTrace(); } catch (IOException e) { eprintStackTrace(); } } public static void output(Node node) {//将node的XML字符串输出到控制台 TransformerFactory transFactory=TransformerFactorynewInstance(); try { Transformer transformer = transFactorynewTransformer(); transformersetOutputProperty("encoding", "gb2312"); transformersetOutputProperty("indent", "yes"); DOMSource source=new DOMSource(); sourcesetNode(node); StreamResult result=new StreamResult(); resultsetOutputStream(Systemout); transformertransform(source, result); } catch (TransformerConfigurationException e) { eprintStackTrace(); } catch (TransformerException e) { eprintStackTrace(); } } public static Node selectSingleNode(String express, Object source) {//查找节点,并返回第一个符合条件节点 Node result=null; XPathFactory xpathFactory=XPathFactorynewInstance(); XPath xpath=xpathFactorynewXPath(); try { result=(Node) xpathevaluate(express, source, XPathConstantsNODE); } catch (XPathExpressionException e) { eprintStackTrace(); } return result; } public static NodeList selectNodes(String express, Object source) {//查找节点,返回符合条件的节点集。 NodeList result=null; XPathFactory xpathFactory=XPathFactorynewInstance(); XPath xpath=xpathFactorynewXPath(); try { result=(NodeList) xpathevaluate(express, source, XPathConstantsNODESET); } catch (XPathExpressionException e) { eprintStackTrace(); } return result; } public static void saveXml(String fileName, Document doc) {//将Document输出到文件 TransformerFactory transFactory=TransformerFactorynewInstance(); try { Transformer transformer = transFactorynewTransformer(); transformersetOutputProperty("indent", "yes"); DOMSource source=new DOMSource(); sourcesetNode(doc); StreamResult result=new StreamResult(); resultsetOutputStream(new FileOutputStream(fileName)); transformertransform(source, result); } catch (TransformerConfigurationException e) { eprintStackTrace(); } catch (TransformerException e) { eprintStackTrace(); } catch (FileNotFoundException e) { eprintStackTrace(); } }} XML:<xml version="10" encoding="GBK"><books><book><name>哈里波特</name><price>10</price><memo>这是一本很好看的书。</memo></book><book id="B02"><name>三国演义</name><price>10</price><memo>四大名著之一。</memo></book><book id="B03"><name>水浒</name><price>6</price><memo>四大名著之一。</memo></book><book id="B04"><name>红楼</name><price>5</price><memo>四大名著之一。</memo></book></books>

以上就是关于java 生成xml文件怎么有格式全部的内容,包括:java 生成xml文件怎么有格式、JAVA 生成xml格式,具体格式如下,请问JAVA方法怎么写、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9509307.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存