美文网首页
Jaxp解析方式(一般)

Jaxp解析方式(一般)

作者: di調的悲伤 | 来源:发表于2017-05-09 17:01 被阅读0次

    一:获得文档对象

    //1、获得工厂实例
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    //2、使用工厂生成解析器
    DocumentBuilder builder = factory.newDocumentBuilder();
    //3、通过解析器解析指定文件获得文档对象document
    File xml = new File("./src/xxx.xml");
    Document document = builder.parse(xml);
    

    二:查询和遍历节点

    //1、getElementsByTagName("shouting");获得NodeList集合
    NodeList tags = document.getElementsByTagName("shouting");
    //2、遍历
    for(int i=0;i<tags.getLength();i++){
      Node node = tags.item(i);
      String textContent = node.getTextContent();
      System.out.println(textContent);
    }
    

    三:创建元素并添加对应节点

    //1、创建标签<shouting></shouting>
    Element shoutingTag = document.createElement("shouting");
    //2、创建文本或者子元素节点
    Text text = document.createTextNode("Hello World!getDocumentElement()");
    //3、将文本加入到标签内 <shouting>Hello World!</shouting>
    shoutingTag.appendChild(text);
    //4、获得根节点的两种方式
    //Node root = document.getFirstChild();
    Element root = document.getDocumentElement();
    //5、将新节点添加想添加的节点下
    root.appendChild(shoutingTag);
    

    到此 文档对象写入已经完成,目前改变后的文档对象还保存在内存中 需要回写到文件中(增删改都要进行回写)

    三:删除节点

    //1、getElementsByTagName("shouting");获得NodeList集合
    NodeList tags = document.getElementsByTagName("shouting");
    //2、删除操作
    //假定删除最后一个节点
    Node lastTag = tags.item(tags.getLength()-1);
    //获得要删除节点的父节点
    Node parentNode = lastTag.getParentNode();
    //在父节点上进行删除操作 并且返回删除的节点
    Node oldNode = parentNode.removeChild(lastTag);     
    

    注意要回写文档

    四:修改操作和修改或添加属性

    //1、getElementsByTagName("shouting");获得NodeList集合
    NodeList tags = document.getElementsByTagName("shouting");
    //2、对节点进行修改操作
    Node lastTag = tags.item(tags.getLength()-1);
    //修改文本内容
    lastTag.setTextContent("进行修改");
    //修改属性 (Element类上操作)
    Element n = (Element)lastTag;
    n.setAttribute("src", "sssssshting");  
    

    注意要回写文档

    五:回写document

    TransformerFactory tFactory = TransformerFactory.newInstance();
    Transformer tf = tFactory.newTransformer();
    tf.transform(new DOMSource(document), new StreamResult("src/xxx.xml"));
    

    相关文章

      网友评论

          本文标题:Jaxp解析方式(一般)

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