JAVA 生成xml格式,具体格式如下,请问JAVA方法怎么写 Posted 2023-05-02
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA 生成xml格式,具体格式如下,请问JAVA方法怎么写相关的知识,希望对你有一定的参考价值。
<?xml version="1.0" encoding="UTF-8"?> <chart> <series> <value xid="0">1949</value> <value xid="1">1950</value> <value xid="2">1951</value> <value xid="3">1952</value> <value xid="4">1953</value> <value xid="5">1954</value> </series> <graphs> <graph gid="1"> <value xid="0">2.54</value> <value xid="1">2.51</value> <value xid="2">2.53</value> <value xid="3">2.53</value> <value xid="4">2.68</value> <value xid="5">2.78</value> </graph> <graph gid="2"> <value xid="0">20.21</value> <value xid="1">19.73</value> <value xid="2">18.43</value> <value xid="3">18.08</value> <value xid="4">19.01</value> <value xid="5">19.57</value> </graph> </graphs> <guides> <guide> </guide> </guides> </chart> 数据源: series=“1949 ,1950 ,1951 ,1952 ,1953 ,1954 ” graph_gid_2=" 2.54 ,2.51, 2.53, 2.53 ,2.68 , 2.78" graph_gid_2=“ 20.21, 19.73 ,18.43 ,18.08, 19.01, 19.57”
import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import org.w3c.dom.*;import org.xml.sax.SAXException;import javax.xml.parsers.*;import javax.xml.transform.*;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.*;import javax.xml.xpath.*;public class Test public static void main(String[] args) DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); Element theBook=null, theElem=null, root=null; try factory.setIgnoringElementContentWhitespace(true); DocumentBuilder db=factory.newDocumentBuilder(); Document xmldoc=db.parse(new File("Test1.xml")); root=xmldoc.getDocumentElement(); theBook=(Element) selectSingleNode("/books/book[name='哈里波特']", root); System.out.println("--- 查询找《哈里波特》 ----"); Element nameNode=(Element)theBook.getElementsByTagName("price").item(0); String name=nameNode.getFirstChild().getNodeValue(); System.out.println(name); output(theBook); System.out.println("=============selectSingleNode(books/book[name='哈里波特'], root)=================="); //--- 新建一本书开始 ---- theBook=xmldoc.createElement("book"); theElem=xmldoc.createElement("name"); theElem.setTextContent("新书"); theBook.appendChild(theElem); theElem=xmldoc.createElement("price"); theElem.setTextContent("20"); theBook.appendChild(theElem); theElem=xmldoc.createElement("memo"); theElem.setTextContent("新书的更好看。"); theBook.appendChild(theElem); root.appendChild(theBook); System.out.println("--- 新建一本书开始 ----"); output(xmldoc); System.out.println("=============================="); //--- 新建一本书完成 ---- //--- 下面对《哈里波特》做一些修改。 ---- //--- 查询找《哈里波特》---- //--- 此时修改这本书的价格 ----- theBook.getElementsByTagName("price").item(0).setTextContent("15");//getElementsByTagName返回的是NodeList,所以要跟上item(0)。另外,getElementsByTagName("price")相当于xpath的".//price"。 System.out.println("--- 此时修改这本书的价格 ----"); output(theBook); //--- 另外还想加一个属性id,值为B01 ---- theBook.setAttribute("id", "B01"); System.out.println("--- 另外还想加一个属性id,值为B01 ----"); output(theBook); //--- 对《哈里波特》修改完成。 ---- //--- 要用id属性删除《三国演义》这本书 ---- theBook=(Element) selectSingleNode("/books/book[@id='B02']", root); System.out.println("--- 要用id属性删除《三国演义》这本书 ----"); output(theBook); theBook.getParentNode().removeChild(theBook); System.out.println("--- 删除后的XML ----"); output(xmldoc); //--- 再将所有价格低于10的书删除 ---- NodeList someBooks=selectNodes("/books/book[price<10]", root); System.out.println("--- 再将所有价格低于10的书删除 ---"); System.out.println("--- 符合条件的书有 "+someBooks.getLength()+"本。 ---"); for(int i=0;i<someBooks.getLength();i++) someBooks.item(i).getParentNode().removeChild(someBooks.item(i)); output(xmldoc); saveXml("Test1_Edited.xml", xmldoc); catch (ParserConfigurationException e) e.printStackTrace(); catch (SAXException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); public static void output(Node node) //将node的XML字符串输出到控制台 TransformerFactory transFactory=TransformerFactory.newInstance(); try Transformer transformer = transFactory.newTransformer(); transformer.setOutputProperty("encoding", "gb2312"); transformer.setOutputProperty("indent", "yes"); DOMSource source=new DOMSource(); source.setNode(node); StreamResult result=new StreamResult(); result.setOutputStream(System.out); transformer.transform(source, result); catch (TransformerConfigurationException e) e.printStackTrace(); catch (TransformerException e) e.printStackTrace(); public static Node selectSingleNode(String express, Object source) //查找节点,并返回第一个符合条件节点 Node result=null; XPathFactory xpathFactory=XPathFactory.newInstance(); XPath xpath=xpathFactory.newXPath(); try result=(Node) xpath.evaluate(express, source, XPathConstants.NODE); catch (XPathExpressionException e) e.printStackTrace(); return result; public static NodeList selectNodes(String express, Object source) //查找节点,返回符合条件的节点集。 NodeList result=null; XPathFactory xpathFactory=XPathFactory.newInstance(); XPath xpath=xpathFactory.newXPath(); try result=(NodeList) xpath.evaluate(express, source, XPathConstants.NODESET); catch (XPathExpressionException e) e.printStackTrace(); return result; public static void saveXml(String fileName, Document doc) //将Document输出到文件 TransformerFactory transFactory=TransformerFactory.newInstance(); try Transformer transformer = transFactory.newTransformer(); transformer.setOutputProperty("indent", "yes"); DOMSource source=new DOMSource(); source.setNode(doc); StreamResult result=new StreamResult(); result.setOutputStream(new FileOutputStream(fileName)); transformer.transform(source, result); catch (TransformerConfigurationException e) e.printStackTrace(); catch (TransformerException e) e.printStackTrace(); catch (FileNotFoundException e) e.printStackTrace(); XML:<?xml version="1.0" 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>
参考技术A
给你个示例你看一下,我不知道你的数据是怎么来的,应该是实体吧 package com.xh.xml; import java.io.FileOutputStream; import java.io.IOException; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.jdom.output.XMLOutputter; public class Java2XML public void BuildXMLDoc() throws IOException, JDOMException // 创建根节点 list; Element root = new Element("list"); // 根节点添加到文档中; Document Doc = new Document(root); // 此处 for 循环可替换成 遍历 数据库表的结果集操作; for (int i = 0; i < 2; i++) // 创建节点 user; Element elements = new Element("user"); // 给 user 节点添加属性 id; elements.setAttribute("id", "" + i); // 给 user 节点添加子节点并赋值; // new Element("name")中的 "name" 替换成表中相应字段,setText("xuehui")中 "xuehui 替换成表中记录值; elements.addContent(new Element("name").setText("xuehui")); elements.addContent(new Element("age").setText("28")); elements.addContent(new Element("sex").setText("Male")); // 给父节点list添加user子节点; root.addContent(elements); XMLOutputter XMLOut = new XMLOutputter(); // 输出 user.xml 文件; XMLOut.output(Doc, new FileOutputStream("user.xml")); public static void main(String[] args) try Java2XML j2x = new Java2XML(); System.out.println("生成 mxl 文件..."); j2x.BuildXMLDoc(); catch (Exception e) e.printStackTrace(); 生成的 user.xml 文件 <?xml version="1.0" encoding="UTF-8"?> <list> <user id="0"> <name>xuehui</name> <age>28</age> <sex>Male</sex> </user> <user id="1"> <name>xuehui</name> <age>28</age> <sex>Male</sex> </user> </list> 生成XML时候处理缩进,对输出格式进行美化 只需要将上面生成XML时候的带吗修改成如下代码: Format format = Format.getPrettyFormat(); XMLOutputter XMLOut = new XMLOutputter(format); XMLOut.output(Doc, new FileOutputStream("user.xml")); 生成XML的时候,处理特殊字符 element.addContent(new CDATA("<xml> content")); 生成XML的时候,设置编码 XMLOutputter XMLOut = new XMLOutputter(); XMLOut.setEncoding("gb2312"); XMLOut.output(Doc, new FileOutputStream("test1.xml"));本回答被提问者采纳
CXF解析svc?wsdl文件成java格式
今天用CXF在解析http方式的svc?wsdl文件成java格式时,提示Service 某个Service does not contain any usable ports,请问这个是怎么回事啊,详细一点,就算几句话也说明一下原因,谢谢。
参考技术A
1. 安装JDK1.5, 配置系统环境变量: 下载安装JDK后, 设置环境变量: JAVA_HOME=C:/Program Files/Java/jdk1.5.0_02 Path=%Path%;%JAVA_HOME%/bin(这里的%Path%指你系统已经有的一系列配置) CLASSPATH=%JAVA_HOME%/lib 2. 下载CXF, 配置系统环境变量: CXF下载地址http://cxf.apache.org/download.html 配置环境变量: CXF_HOME=E:\\WebService\\CXF\\apache-cxf-2.1.1\\apache-cxf-2.1.1(以我的目录为例) PATH后追加上“ ;%CXF_HOME%\\bin” 在cmd命令行中输入wsdl2java如果显示其用法表示配置好了。 3.运行命令是 : wsdl2java d:\\document\\webservice\\hello.wsdl (wsdl 的路径) 4.如果没有报错就表示执行成功了,但是执行成功后的java文件生成到什么地方了? 系统没有提示,当时我就用了一种最笨的方法来找,在整个电脑里面搜索才找到的,后来我才发现了规律,就是你敲入命令的时候,所处的路径,肯定就是你文件生成的地方,我当时是cmd直接进入的, 路径是C:\\Documents and Settings\\Administrator,所以生成的文件也在这个目录下。 5.新建工程,将生成的java文件和所需要的 jar 包导入即可。参考地址:
http://radio123.iteye.com/blog/1134267
追问 这些前面的工作我都做完了,就是解析的时候提示
以上是关于JAVA 生成xml格式,具体格式如下,请问JAVA方法怎么写的主要内容,如果未能解决你的问题,请参考以下文章
基于soot的java方法名生成报告
请问用啥软件生成.xml文件,用啥软件生成html文件?
CXF解析svc?wsdl文件成java格式
请问Eclipse怎么识别xml文件
如何用java生成一个XML文件,并且将该文件压缩成ZIP格式后再写到硬盘上?
在java中如何实现http/post/xml发送数据报文?麻烦高手赐教!