以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 DOM/SAX/XPath 』 (http://bbs.xml.org.cn/list.asp?boardid=11) ---- [求助]把java中的XML文档树生成XML文档 (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=87980) |
-- 作者:linruixin -- 发布时间:11/28/2010 12:58:00 PM -- [求助]把java中的XML文档树生成XML文档 import javax.xml.parsers.*; import org.xml.sax.*; import java.io.*; import org.w3c.dom.*; public class code10_4{ |
-- 作者:sunbird_xwf -- 发布时间:12/2/2010 2:13:00 PM -- 程序两个问题 1、添加包import javax.xml.transform.*; import javax.xml.transform.stream.*; import javax.xml.transform.dom.*; 因为后面生成xml文档用到的类在这些包中 2、在main()方法中添加异常的处理 修改后的程序如下 import javax.xml.parsers.*; import org.xml.sax.*; import java.io.*; import org.w3c.dom.*; import javax.xml.transform.*; //修改的部分 import javax.xml.transform.stream.*; import javax.xml.transform.dom.*; public class test{ static Document document; public static void main(String[] args) throws Exception{ DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); DocumentBuilder db=dbf.newDocumentBuilder(); //建立新的XML文件 document=db.newDocument(); //建立根元素 Element root=(Element)document.createElement("customer"); document.appendChild(root); //新增子元素customerID Element newnode=(Element)document.createElement("customerID"); root.appendChild(newnode); //增加元素的内容 newnode.appendChild(document.createTextNode("ID")); // 增加元素的属性 newnode=(Element)root.getFirstChild(); newnode.setAttribute("ID","c050013"); //新增子元素username newnode=(Element)document.createElement("username"); root.appendChild(newnode); //增加元素的内容 newnode.appendChild(document.createTextNode("cheaperget")); //新增子元素password newnode=(Element)document.createElement("password"); //新增元素插入在根元素的最后一个孩子前面 root.insertBefore(newnode,root.getLastChild()); //新建文字节点 Node text=document.createTextNode("12345678"); //插入文字节点到根节点第一个子节点的兄弟节点,即第二子节点 Node temp=root.getFirstChild(); temp.getNextSibling().appendChild(text); //显示XML文件 System.out.println("根元素:"+root.getNodeName()); //获取根元素的所有子节点 NodeList childs=root.getChildNodes(); for(int i=0;i<childs.getLength();i++) { //显示元素的名字和元素的内容(文字节点) System.out.print("元素:"+childs.item(i).getNodeName()); System.out.println("/"+childs.item(i).getFirstChild().getNodeValue()); //显示元素的的属性值 if(childs.item(i).hasAttributes()) { //取属性列表 NamedNodeMap atts=childs.item(i).getAttributes(); //使用for循环获取各属性名称和值 for(int j=0;j<atts.getLength();j++) { Node att=atts.item(j); System.out.print("--"+att.getNodeName()); System.out.println("/"+att.getNodeValue()); } } } try{ //修改的部分 DOMSource domsource=new DOMSource(document); File file=new File("code10_4.xml"); StreamResult xmlresult=new StreamResult(file); TransformerFactory factory=TransformerFactory.newInstance(); Transformer transformer=factory.newTransformer(); transformer.transform(domsource,xmlresult); } catch(Exception e) { System.out.println(e); } } } |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
2,542.969ms |