Java XML操作总结

 Java XML操作总结


一、读取XML文件

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();//DOM解析器工厂
factory.setIgnoringElementContentWhitespace(true);   
DocumentBuilder builder = factory.newDocumentBuilder();//获取DOM解析器
//解析XML文档,并获取该XML文档对应的Document
Document doc = builder.parse(new File("D:\\MyEclipse\\Workspaces\\AHP_03_09_11\\src\\intergraph\\ahp\\AHP.xml"));

二、读取XML字符串

   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
   factory.setIgnoringElementContentWhitespace(true);
   //获取DOM解析器
   DocumentBuilder builder = factory.newDocumentBuilder();
   //解析XML文档,并获取该XML文档对应的Document
   Document doc = builder.parse(new InputSource(new StringReader(xmlStr)));

三、遍历XML

//DOM解析器工厂
  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  factory.setIgnoringElementContentWhitespace(true);
  //获取DOM解析器
  DocumentBuilder builder = factory.newDocumentBuilder();
  //解析XML文档,并获取该XML文档对应的Document
  Document doc = builder.parse(new File("D:\\MyEclipse\\Workspaces\\AHP_03_09_11\\src\\intergraph\\ahp\\book-list.xml"));
  /*
  我们在JavaScript中编程时的document也是Document类的实例,
  因为XML文档的元素通常没有ID属性,
  否则也可通过getElementById()方法来访问各元素。
  */
  //获得根节点的方法,getDocumentElement
  Element bookList = doc.getDocumentElement();
  //获取根元素所包含的所有“计算机书籍”子元素,
  //如果传入*作为参数,可获取所有子元素
  NodeList nodeList = bookList.getElementsByTagName("计算机书籍");
  //遍历每个子元素
  for (int i = 0; i < nodeList.getLength() ; i++ )
  {
   System.out.println("------------第" + i + "本计算机书籍--------------");
  
   Node comBook = nodeList.item(i);
   //获取ISBN属性节点
   Node isbnAttr = comBook.getAttributes().getNamedItem("ISBN");
   if (isbnAttr != null)
   {
    System.out.println("该图书的ISBN为:" + isbnAttr.getTextContent());
   }
   //获取comBook下的所有子元素
   NodeList attList = comBook.getChildNodes();
   //遍历每个子元素
   for (int j = 0; j < attList.getLength() ; j++ )
   {
    System.out.println(attList.item(j).getTextContent().trim());
   }
  }
  //获取根元素所包含的所有“文学书籍”子元素,
  nodeList = bookList.getElementsByTagName("文学书籍");
  //遍历每个子元素
  for (int i = 0; i < nodeList.getLength() ; i++ )
  {
   System.out.println("------------第" + i + "本文学书籍--------------");
   Node cultureBook = nodeList.item(i);
   System.out.println(cultureBook.getTextContent());
  }
  //获取根元素所包含的所有“哲学书籍”子元素,
  nodeList = bookList.getElementsByTagName("哲学书籍");
  //遍历每个子元素
  for (int i = 0; i < nodeList.getLength() ; i++ )
  {
   System.out.println("------------第" + i + "本哲学书籍--------------");
   Node cultureBook = nodeList.item(i);
   System.out.println(cultureBook.getTextContent().trim());
   System.out.println(cultureBook.getFirstChild().getTextContent().trim());
  }

四、XML转字符串

  private String XMLDocumentToStr(Document document){ 
  String xmlStr = null;
  try {
  
  TransformerFactory tf = TransformerFactory.newInstance();
  
  Transformer t = tf.newTransformer();
  
  t.setOutputProperty("encoding", "GBK");
  
  ByteArrayOutputStream bos = new ByteArrayOutputStream();  
  
  t.transform(new DOMSource(document), new StreamResult(bos));  
  
  xmlStr = bos.toString();
  
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return xmlStr; 

 } 

 五、添加和修改属性

 利用Element对象的setAttribute方法。

如果遇到Node对象,可以将Node强制转换成Element对象。

      Node cp = cpList.item(j);
      Element cpElement = null;
      cpElement = ( Element )cp;

六、判断Node节点是否是Element对象

if(cpList.item(j).getNodeType()==Node.ELEMENT_NODE)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值