本文共 2008 字,大约阅读时间需要 6 分钟。
##关于xml的使用
两种解析方式 1.SAX 可以读取一行并解析一行,不会造成把内存的溢出。但是只能进行查询 2.DOM 可以一次性将整个xml文件进行加载进内存中,但是容易内存溢出,造成文件的丢失。可以进行增加以及删除步骤:
一:dom4j的使用 1.创建SAXreader对象 SAXReader reader = new SAXReader();2.传入xml值,用document进行接受
Document document = reader.read(new File(“src/xml/demo.xml”));3.得到根元素 ,即是stus --> stu
Element rootElement = document.getRootElement();4.获取元素,有两种,
一种是获取一个,另一种创建集合,将获取的根元素传入进集合中 rootElement.element 获取子元素4.1
System.out.println(rootElement.element(“stu”).element(“age”).getStringValue());public static void main(String[] args) {
try { //1.创建sax读取对象 SAXReader reader = new SAXReader(); //2.传入输入流 即是:解析xml文件 Document document = reader.read(new File("src/xml/demo.xml")); //3.得到根元素 Element rootElement = document.getRootElement(); //得到根元素 //System.out.println(rootElement.element("stu").getName()); //rootElement.element 获取子元素 //获得特定的根元素的子元素的子元素 //System.out.println(rootElement.element("stu").element("age").getStringValue()); //rootElement.elements 返回值类型为集合list 获取根元素下面的所有的子元素 //即使 stus --> stu 元素 Listelements = rootElement.elements(); for (Element element : elements) { //得到所有的stu元素 //System.out.println(element.getName()); String name = element.element("name").getText(); String age = element.element("age").getText(); System.out.println(name + age); } } catch (Exception e) { e.printStackTrace(); }}
Xpath的使用
// selectSingNote() --Node(Element) node 的级别太高了 用element作为对象 selectNodes() --Listpublic static void main(String[] args) {
try { //1.创建sax对象啊 SAXReader reader = new SAXReader(); //2.传入xml文件 Document document = reader.read(new File(“src/xml/demo.xml”)); //3.得到根元素 Element rootElement = document.getRootElement();//获取单个元素 Element nameElement= (Element) rootElement.selectSingleNode("//name"); //传入的是元素 ,要进行强转 System.out.println(nameElement.getText()); //获取文档中的所有的元素 Listlist= rootElement.selectNodes("//name"); for (Element element : list) { System.out.println(element.getText()); }} catch (Exception e) { e.printStackTrace();}}
转载地址:http://idgwi.baihongyu.com/