java怎么读取xml文件内容

69次阅读
没有评论

共计 2491 个字符,预计需要花费 7 分钟才能阅读完成。

在 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 文件,可以根据需要选择使用的解析器。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-12发表,共计2491字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)