具体的使用方法如下:

(1)得到 DOM 解析器的工厂实例

DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();

(2)从 DOM 工厂获得 DOM 解析器

DocumentBuilder dombuilder=domfac.newDocumentBuilder();

(3 )把要解析的 XML 文档转化为输入流,以便 DOM 解析器解析它

InputStream is= new  FileInputStream("test1.xml");

(4)解析 XML 文档的输入流,得到一个 Document

Document doc=dombuilder.parse(is);

(5)得到 XML 文档的根节点

Element root=doc.getDocumentElement();

(6)得到节点的子节点

NodeList books=root.getChildNodes();

Java代码  
  1. package com.st.demo;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.InputStream;
  5. import javax.xml.parsers.DocumentBuilder;
  6. import javax.xml.parsers.DocumentBuilderFactory;
  7. import org.w3c.dom.Document;
  8. import org.w3c.dom.Element;
  9. import org.w3c.dom.Node;
  10. import org.w3c.dom.NodeList;
  11. public class XmlReader {
  12. public static void main(String[] args) {
  13. XmlReader reader = new XmlReader();
  14. }
  15. public XmlReader(){
  16. DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();
  17. try {
  18. DocumentBuilder domBuilder = domfac.newDocumentBuilder();
  19. InputStream is = new FileInputStream(new File("D:/test1.xml"));
  20. Document doc = domBuilder.parse(is);
  21. Element root = doc.getDocumentElement();
  22. NodeList books = root.getChildNodes();
  23. if(books!=null){
  24. for (int i = 0; i < books.getLength(); i++) {
  25. Node book = books.item(i);
  26. if(book.getNodeType()==Node.ELEMENT_NODE) {
  27. //(7)取得节点的属性值
  28. String email=book.getAttributes().getNamedItem("email").getNodeValue();
  29. System.out.println(email);
  30. //注意,节点的属性也是它的子节点。它的节点类型也是Node.ELEMENT_NODE
  31. //(8)轮循子节点
  32. for(Node node=book.getFirstChild();node!=null;node=node.getNextSibling()) {
  33. if(node.getNodeType()==Node.ELEMENT_NODE) {
  34. if(node.getNodeName().equals("name")) {
  35. String name=node.getNodeValue();
  36. String name1=node.getFirstChild().getNodeValue();
  37. System.out.println(name);
  38. System.out.println(name1);
  39. }
  40. if(node.getNodeName().equals("price")) {
  41. String price=node.getFirstChild().getNodeValue();
  42. System.out.println(price);
  43. }
  44. }
  45. }
  46. }
  47. }
  48. }
  49. catch (Exception e) {
  50. // TODO Auto-generated catch block
  51. e.printStackTrace();
  52. }
  53. }
  54. }
Xml代码  
  1. <?xml version="1.0" encoding="GB2312" standalone="no"?>
  2. <books>
  3. <book email="zhoujunhui">
  4. <name>rjzjh</name>
  5. <price>jjjjjj</price>
  6. </book>
  7. </books>

java中调用xml的方法:DocumentBuilderFactory的更多相关文章

  1. 【Android】java中调用JS的方法

    最近因为学校换了新的教务系统,想做一个模拟登陆功能,发现登陆的账号和密码有一个js脚本来进行加密 整理了一下java中执行JS的方法 智强教务 账号 密码 加密方法 var keyStr = &quo ...

  2. java中调用dll文件的两种方法

    一中是用JNA方法,另外是用JNative方法,两种都是转载来的, JNA地址:http://blog.csdn.net/shendl/article/details/3589676   JNativ ...

  3. 在java中调用python方法

    1.http://sourceforge.net/projects/jython/下载jython包,把其中的jython.jar添加到工程目录 示例: 1.摘自:http://blog.csdn.n ...

  4. 在Java中调用Python

    写在前面 在微服务架构大行其道的今天,对于将程序进行嵌套调用的做法其实并不可取,甚至显得有些愚蠢.当然,之所以要面对这个问题,或许是因为一些历史原因,或者仅仅是为了简单.恰好我在项目中就遇到了这个问题 ...

  5. JAVA如何调用C/C++方法

    JAVA如何调用C/C++方法 2013-05-27 JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能.解决JAVA对本地操作的 ...

  6. Java中调用c/c++语言出现Exception in thread "main" java.lang.UnsatisfiedLinkError: Test.testPrint(Ljava/lang/String;)V...错误

    错误: Exception in thread "main" java.lang.UnsatisfiedLinkError: Test.testPrint(Ljava/lang/S ...

  7. java中调用js脚本

    JDK1.6加入了对Script(JSR223)的支持.这是一个脚本框架,提供了让脚本语言来访问Java内部的方法.你可以在运行的时候找到脚本引擎,然后调用这个引擎去执行脚本.这个脚本API允许你为脚 ...

  8. 如何在Java中调用Python代码

    有时候,我们会碰到这样的问题:与A同学合作写代码,A同学只会写Python,而不会Java, 而你只会写Java并不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方设法“调 ...

  9. 在Java中调用Python代码

    极少数时候,我们会碰到类似这样的问题:与A同学合作写代码, A同学只会写Python,不熟悉Java ,而你只会写Java不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方 ...

随机推荐

  1. Android 网络开发之WIFI

    WIFI就是一种无线联网技术,常见的是使用无线路由器.那么在这个无线路由器的信号覆盖的范围内都可以采用WIFI连接的方式进行联网.如果无线路由器连接了一个ADSL线路或其他的联网线路,则又被称为&qu ...

  2. [poj2411] Mondriaan's Dream (状压DP)

    状压DP Description Squares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One nigh ...

  3. MATLAB地图工具箱学习总结(四)自定义投影

    MATLAB地图工具箱学习总结(四)自定义投影 这是本系列的最后一篇文章,准备给大家讲讲自定义投影怎么做.在做这项作业的时候,自己也是花了不少时间,将所有地图投影源文件都看了一遍,简单分析了一下源代码 ...

  4. mac os 禁止apache httpd自动启动(转)

    mac os 禁止apache httpd自动启动 博客分类: 计算机使用   mac os不像linux有/etc/init.d/rc.local以及service的方式可以设置程序随机启动,而是使 ...

  5. java里面interface,implement和extends的作用和用法

    今天阅读<设计模式示例>,看到一段代码涉及到了interface,implements和extends,其实在C++中经常用到.今天特百度,比较了一下: interface是一个接口,类似 ...

  6. 关于editor网页编辑器ueditor.config.js 配置图片上传

    最近公司项目在做一个门户网站,其中新闻和简介等部分使用到了ueditor编辑器,但是上级明确指示需要图片上传这个功能,这时却发现图片上传功能不能正常使用,上传时一直报错,网上收了好几个处理办法,都说的 ...

  7. Python控制window进行简单的消息弹窗

    有人提到可以用easygui 稍后尝试一下

  8. linux服务器下安装nodejs

    http://www.cnblogs.com/kevinchou/p/5405540.html

  9. 【网摘】CURL常用命令

    原文地址: http://www.thegeekstuff.com/2012/04/curl-examples/ 下载单个文件,默认将输出打印到标准输出中(STDOUT)中 curl http://w ...

  10. javascriptの循序渐进(一)

    javascriptの循序渐进系列为<javascript高级程序设计>的读书笔记,记录了看书过程中觉得重点的地方和一些总结,为学习javascript打好基础. ------------ ...