java怎么读取xml文件内容

   2025-02-15 9930
核心提示:在Java中读取XML文件内容有多种方法,以下是两种常见的方法:使用DOM解析器:import javax.xml.parsers.DocumentBuilderFactory;

在Java中读取XML文件内容有多种方法,以下是两种常见的方法:

使用DOM解析器:
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;public class ReadXMLUsingDOM {   public static void main(String[] args) {      try {         File inputFile = new File("input.xml");         DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();         DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();         Document doc = dBuilder.parse(inputFile);         doc.getDocumentElement().normalize();         System.out.println("根元素:" + doc.getDocumentElement().getNodeName());         NodeList nodeList = doc.getElementsByTagName("student");         for (int temp = 0; temp < nodeList.getLength(); temp++) {            Node node = nodeList.item(temp);            System.out.println("\n当前元素:" + node.getNodeName());            if (node.getNodeType() == Node.ELEMENT_NODE) {               Element element = (Element) node;               System.out.println("学号:" + element.getAttribute("id"));               System.out.println("姓名:" + element.getElementsByTagName("name").item(0).getTextContent());               System.out.println("年龄:" + element.getElementsByTagName("age").item(0).getTextContent());               System.out.println("性别:" + element.getElementsByTagName("gender").item(0).getTextContent());            }         }      } catch (Exception e) {         e.printStackTrace();      }   }}
使用SAX解析器:
import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;public class ReadXMLUsingSAX {   public static void main(String[] args) {      try {         File inputFile = new File("input.xml");         SAXParserFactory factory = SAXParserFactory.newInstance();         SAXParser saxParser = factory.newSAXParser();         DefaultHandler handler = new DefaultHandler() {            boolean bName = false;            boolean bAge = false;            boolean bGender = false;            public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {               if (qName.equalsIgnoreCase("name")) {                  bName = true;               }               if (qName.equalsIgnoreCase("age")) {                  bAge = true;               }               if (qName.equalsIgnoreCase("gender")) {                  bGender = true;               }            }            public void endElement(String uri, String localName, String qName) throws SAXException {               if (qName.equalsIgnoreCase("student")) {                  System.out.println();               }            }            public void characters(char ch[], int start, int length) throws SAXException {               if (bName) {                  System.out.println("姓名:" + new String(ch, start, length));                  bName = false;               }               if (bAge) {                  System.out.println("年龄:" + new String(ch, start, length));                  bAge = false;               }               if (bGender) {                  System.out.println("性别:" + new String(ch, start, length));                  bGender = false;               }            }         };         saxParser.parse(inputFile, handler);      } catch (Exception e) {         e.printStackTrace();      }   }}

这两种方法分别使用DOM解析器和SAX解析器来解析XML文件,可以根据需要选择使用的解析器。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言