ShopJsp 最专业权威的商城系统提供商,最适合二次开发的商城系统! 快速联系通道    电话:010-62910181  手机:18611625933   QQ:94367128

java解析XML几种方式小结

2016-01-14  来源:华宇盈通

使用java解析xml有几种不同的方法,小编整理了相关的方法希望对你有所帮助。

第一种:DOM方法

import java.io.File;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.NodeList;

public class DomTest1

{

  public static void main(String[] args) throws Exception

  {

    // step 1: 获得dom解析器工厂(工作的作用是用于创建具体的解析器)

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

//   System.out.println("class name: " + dbf.getClass().getName());

    // step 2:获得具体的dom解析器

    DocumentBuilder db = dbf.newDocumentBuilder();

//   System.out.println("class name: " + db.getClass().getName());

    // step3: 解析一个xml文档,获得Document对象(根结点)

    Document document = db.parse(new File("candidate.xml"));

    NodeList list = document.getElementsByTagName("PERSON");

    for(int i = 0; i < list.getLength(); i++)

    {

      Element element = (Element)list.item(i);        

      String content =element.getElementsByTagName("NAME").item(0).getFirstChild().getNodeValue();  

System.out.println("name:" + content);

      content =

element.getElementsByTagName("ADDRESS").item(0).getFirstChild().getNodeValue();

      System.out.println("address:" + content);

      content = element.getElementsByTagName("TEL").item(0).getFirstChild().getNodeValue();

      System.out.println("tel:" + content);

      content = element.getElementsByTagName("FAX").item(0).getFirstChild().getNodeValue();

      System.out.println("fax:" + content);

      content = element.getElementsByTagName("EMAIL").item(0).getFirstChild().getNodeValue();

      System.out.println("email:" + content);

      System.out.println("--------------------------------------");

    }

  }

}

第二种:JDOM:

import java.io.File;

import java.io.FileOutputStream;

import java.util.List;  

import org.jdom.Attribute;

import org.jdom.Document;

import org.jdom.Element;

import org.jdom.input.SAXBuilder;

import org.jdom.output.Format;

import org.jdom.output.XMLOutputter;

  public class JDomTest2

{

  public static void main(String[] args) throws Exception

  {

    SAXBuilder builder = new SAXBuilder();

    Document doc = builder.build(new File("jdom.xml"));

    Element element = doc.getRootElement();

    System.out.println(element.getName());

    Element hello = element.getChild("hello");

    System.out.println(hello.getText());

    List list = hello.getAttributes();

    for(int i = 0 ;i < list.size(); i++)

    {

      Attribute attr = (Attribute)list.get(i);

      String attrName = attr.getName();

      String attrValue = attr.getValue();        

      System.out.println(attrName + "=" + attrValue);

    }

         hello.removeChild("world");

    XMLOutputter out = new XMLOutputter(Format.getPrettyFormat().setIndent("  ")); 

out.output(doc, new FileOutputStream("jdom2.xml"));   

}

}

以上两种方法是使用java解析xml的集中方式,如果你有这方面的问题,希望以上的内容对你有所帮助。

 
在线咨询