117.info
人生若只如初见

java怎么读取xml文件内容

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

  1. 使用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();
      }
   }
}
  1. 使用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文件,可以根据需要选择使用的解析器。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe852AzsLAgBSA1Y.html

推荐文章

  • java中异常类会影响性能吗

    在Java中,异常类本身不会对性能产生显著影响。异常处理机制是为了在程序运行时处理错误或异常情况,而不是为了优化性能。然而,在使用异常时,需要注意以下几点...

  • java中异常类如何避免

    在Java中,避免异常的最好方法是编写健壮的代码并遵循一些最佳实践。以下是一些建议: 预期和处理异常:使用try-catch语句来捕获和处理可能发生的异常。确保处理...

  • java中异常类有哪些常见类型

    Java中的异常类主要分为两大类:受检异常(Checked Exceptions)和非受检异常(Unchecked Exceptions)。以下是具体的异常类型:
    受检异常(Checked Except...

  • java中异常类怎么捕获

    在Java中,我们使用try-catch语句来捕获异常。当程序执行过程中遇到异常时,Java运行时系统会抛出一个异常对象。你可以使用try块来包含可能引发异常的代码,然后...

  • django怎么连接多个数据库

    在Django中连接多个数据库可以按照以下步骤进行操作: 在Django的settings.py文件中配置多个数据库连接信息。在DATABASES设置项中,可以指定多个数据库连接,每个...

  • c语言怎么解决鸡兔同笼问题

    鸡兔同笼问题是一个典型的数学问题,可以使用循环和条件语句来解决。
    首先,我们需要明确问题的条件和目标。假设笼子里共有n只动物(包括鸡和兔),总腿数为...

  • 怎么用php读取文件内容

    要使用PHP读取文件内容,可以使用file_get_contents()函数或fopen()和fread()函数的组合。
    使用file_get_contents()函数:
    $fileContent = file_get_co...

  • python怎么遍历嵌套字典

    可以使用递归或者循环来遍历嵌套字典。下面是两种常见的方法: 递归方法: def traverse_dict(d): for key, value in d.items(): if isinstance(value, dict): t...