美文网首页
Jaxp解析xml

Jaxp解析xml

作者: 胡飞_64b0 | 来源:发表于2018-05-31 22:01 被阅读0次

一.解析xml
1.xml格式如下:

<?xml version="1.0" encoding="UTF-8"?>
<person>
  <p>
      <name>jack</name>
      <age>15</age>
  </p>
  <p>
      <name>mario</name>
      <age>14</age>
  </p>
  <p>
      <name>jane</name>
      <age>16</age>
  </p>
</person>

2.java解析代码如下

package com.hf.jaxp;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class JaxpDemo {
    public static void main(String[] args) throws  Exception {
        
        //1.创建解析器工厂;
        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
        //2.创建解析器;
        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
        //3.使用parse方法得到document对象;
        Document document = documentBuilder.parse("src/person.xml");
        //4.使用document对象的getElementsByTagName方法得到name节点,返回NodeList;
        NodeList nodeList = document.getElementsByTagName("name");
        //遍历NodeList;
        for(int i=0;i<nodeList.getLength();i++) 
        {
            //NodeList对象的item方法返回值为Node对象;
            Node nameNode = nodeList.item(i);
            //使用node对象的getTextContent()方法可以获取其文本内容;
            String name = nameNode.getTextContent();
            System.out.println(name);
        }
    }
}

3.运行结果

jack
mario
jane

二.编辑xml
1.增加标签

  public static void addAttribute() throws Exception
  {
      //1.创建解析器工厂
      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
      //2.创建解析器
      DocumentBuilder db = dbf.newDocumentBuilder();
      //2.解析xml文件,得到document对象
      Document dt = db.parse("src/person.xml");
      //4.得到第一个P标签
      Node firstP = dt.getElementsByTagName("p").item(0);
      //5.创建一个新的标签<sex>
      Element sexNode = dt.createElement("sex");
      //6.创建sex标签的文本内容对象
      Text textNode = dt.createTextNode("man");
      //7.将文本节点添加到标签sex中
      sexNode.appendChild(textNode);
      //8.将sex标签添加到第一个p标签中
      firstP.appendChild(sexNode);
      
      //回写xml,将内存中的数据写入文件
      //创建transformer工厂
      TransformerFactory transformerFactory = TransformerFactory.newInstance();
      //创建transformer
      Transformer transform = transformerFactory.newTransformer();
      //写入
      transform.transform(new DOMSource(dt), new StreamResult("src/person.xml"));
      System.out.println("Success");
  }

相关文章

  • Jaxp解析xml

    一.解析xml1.xml格式如下: 2.java解析代码如下 3.运行结果 二.编辑xml1.增加标签

  • (1)jaxp的目录及简介

    The Java API for XML Processing (JAXP) 提供了xml的解析的功能,关于jav...

  • XML3 - XML解析编程

    JAXP解析 JAXP的DOM解析 由解析器工厂类获取解析器工厂 解析器工厂产生一个解析器 解析XML,获得一个D...

  • 使用SAX读写XML文档

    DOM、SAX和JAXP解析 XML文档解析方式 DOM:Document Object Model:即文档对象模...

  • 4.11 JAXP_DOM解析器的获取

    使用JAXP进行DOM解析 javax.xml.parsers 包中的DocumentBuilderFactory...

  • Xml解析总结-DOM-SAX-Pull

    1.Xml解析方式-DOM,SAX,Pull 2.XML解析库-Java框架 1.JAXP 2.Dom4j 3.X...

  • JAXB、JAXP、JAXM、JAX-WS

    1、JAXP(Java API for XML Parsing) JAXP定义了在Java中使用DOM, SAX,...

  • Jsoup快速入门

    xml常见的解析器: JAXP:sun公司提供的解析器,支持dom和sax两种思想 DOM4J:一款非常优秀的解析...

  • (4)dom4j的简单使用

    在了解jaxp中的sax和dom解析模型之后,可以尝试用第三方的jar包来完成xml的解析 下面展示了dom4j的...

  • xml解析

    一、解析方式:DOM解析,SAX解析 1)解析工具 基于DOM解析原理的: 1)JAXP (o...

网友评论

      本文标题:Jaxp解析xml

      本文链接:https://www.haomeiwen.com/subject/uypcsftx.html