java中xml解析_Java中Xml解析(四种方法)

1、DOM,Document Object Model,基于DOM的XML分析器将XML文档转换成一个对象模型的集合(DOC树),通过对此模型操作实现对XML文档数据的操作,可以在任何时候对XML文档的任何一部分数据进行访问。

DOC强制使用树模型来访问XML文档中信息

很灵活,当XML文档较大时对内存需求比较高,而且对结构复杂的DOC树的遍历也很耗时,对机器要求比较高。

// 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");

2、Sax,Simple APIs for XML,提供的是顺序访问模式,快速读写XML数据的方式。

//step1: 获得SAX解析器工厂实例

SAXParserFactory factory = SAXParserFactory.newInstance();

//step2: 获得SAX解析器实例

SAXParser parser = factory.newSAXParser();

//step3: 开始进行解析

parser.parse(new File("student.xml"), new MyHandler())

3、JDOM,一个开源项目,基于树形结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作

importjava.io.File;importjava.io.FileOutputStream;importjava.util.List;importorg.jdom.Attribute;importorg.jdom.Document;importorg.jdom.Element;importorg.jdom.input.SAXBuilder;importorg.jdom.output.Format;importorg.jdom.output.XMLOutputter;public classJDomTest2

{public static void main(String[] args) throwsException

{

SAXBuilder builder= newSAXBuilder();

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"));

}

}

4、Dom4j

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值