对XML文件的解析

1、应用配置文件的原因
          在程序中我们经常会用到配置文件,就想我们用抽象工厂时为了方便数据库的替换,而将参数配置到配置文件中,还有为了读取一些可变信息,也要将其放到配置文件中,其具有方便,灵活等等一些好处。

2、使用配置文件的准备工作
          需要引用两个jar包:dom4j-1.6.1和 jaxen-1.1-beta-6.jar
         原因:1).dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
Java提供了多种方式来解析XML文件,包括DOM、SAX和StAX等。 1. DOM(Document Object Model)解析:将整个XML文档加载到内存中,形成一棵树形结构,可以通过访问树的节点来获取XML文件中的数据。 2. SAX(Simple API for XML解析:基于事件驱动的解析方式,逐行读取XML文档,遇到节点开始、结束、属性等事件时触发相应的事件处理器进行处理。 3. StAX(Streaming API for XML解析:也是基于事件驱动的解析方式,但是与SAX不同的是,它可以在读取节点时进行修改,也可以在遍历时进行跳过,具有更高的灵活性。 下面是一个使用DOM解析XML文件的示例代码: ```java import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import org.w3c.dom.NodeList; import org.w3c.dom.Node; import org.w3c.dom.Element; import java.io.File; public class XmlParser { public static void main(String argv[]) { try { File fXmlFile = new File("file.xml"); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(fXmlFile); doc.getDocumentElement().normalize(); System.out.println("Root element :" + doc.getDocumentElement().getNodeName()); NodeList nList = doc.getElementsByTagName("student"); System.out.println("----------------------------"); for (int temp = 0; temp < nList.getLength(); temp++) { Node nNode = nList.item(temp); System.out.println("\nCurrent Element :" + nNode.getNodeName()); if (nNode.getNodeType() == Node.ELEMENT_NODE) { Element eElement = (Element) nNode; System.out.println("Student id : " + eElement.getAttribute("id")); System.out.println("First Name : " + eElement.getElementsByTagName("firstname").item(0).getTextContent()); System.out.println("Last Name : " + eElement.getElementsByTagName("lastname").item(0).getTextContent()); System.out.println("Email : " + eElement.getElementsByTagName("email").item(0).getTextContent()); System.out.println("Marks : " + eElement.getElementsByTagName("marks").item(0).getTextContent()); } } } catch (Exception e) { e.printStackTrace(); } } } ``` 该示例代码读取了一个名为“file.xml”的XML文件,遍历其中的“student”节点,并输出每个节点的“id”属性以及“firstname”、“lastname”、“email”和“marks”子节点的文本内容。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值