SaxReader读取,更新xml文件

package com.sun.xml;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class ReadXmlBySaxReader {
    public static void main(String[] args) throws IOException {
        String path="C:\\Users\\Administrator\\Desktop\\bookstore.xml";
        Document document=getDocument(path);
        getNode(document);
        updateEle("aaaa", document,path);
        addEle(document, "编程书籍", path);
    }
    public static Document getDocument(String path) throws UnsupportedEncodingException, FileNotFoundException{
        SAXReader saxReader=new SAXReader();
        File file=new File(path);
        Document document=null;
        InputStreamReader inputStreamReader=new InputStreamReader(new FileInputStream(file));
        try {
            document=saxReader.read(inputStreamReader);
            return document;
        } catch (DocumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }
    
    public static void getNode(Document document){
        Element element=document.getRootElement();
        @SuppressWarnings("unchecked")
        List<Element> list=element.elements("book");
        Iterator<Element> iterator=list.iterator();
        while(iterator.hasNext()){
            Element node=iterator.next();
            Element element2=node.element("title");
            System.out.println(element2.getText());
        }
        System.out.println("ss");
    }
    public static void updateEle(String text,Document document,String path) throws IOException{
        Element element=document.getRootElement();
        @SuppressWarnings("unchecked")
        List<Element> list=element.elements("book");
        Iterator<Element> iterator=list.iterator();
        while(iterator.hasNext()){
            Element node=iterator.next();
            Element element2=node.element("title");
            System.out.println("title为:   "+element2.getText());
            if(element2.getText().equals("ss")){
                element2.setText("java书籍");
            }
            
        }
        writeXml(document,path);
    }
    
    
    public static void addEle(Document document,String text,String path) throws IOException{
        Element rootElement=document.getRootElement();
        Element element=rootElement.addElement("book");
        Element element2=element.addElement("title");
        Element element3=element.addElement("author");
        Element element4=element.addElement("price");
        element2.setText(text);
        element3.setText("万福");
        element4.setText("39.0");
        writeXml(document, path);
    }
    public static void writeXml(Document document,String path) throws IOException{
        OutputFormat outputFormat=OutputFormat.createPrettyPrint();
        
        try {
            XMLWriter xmlWriter=(XMLWriter) new XMLWriter(new FileOutputStream(path),outputFormat);
            xmlWriter.write(document);
            xmlWriter.close();
        } catch (UnsupportedEncodingException | FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
时间: 2024-10-29 19:12:20

SaxReader读取,更新xml文件的相关文章

python读取,写入和更新xml文件

VOC数据集的标注文件都是xml格式,最近需要频繁处理xml文件的读取和更新,整理下python处理xml文件的方法. XML 指可扩展标记语言(eXtensible Markup Language), 被设计用来传输和存储数据.python中有三个模块解析xml文件:DOM, ElementTree,SAX 1. DOM(Document Object Model) DOM是个跨平台的标准模型,W3C定义了DOM模型里的概念.DOM将XML数据在内存中解析成一个树,通过对树的操作来操作XML.

Dom4j 读取一个XML文件和将String写成XML文件

dom4j保存文件xml格式和读取XML文件内容,代码如下: package com.qmjs.imut import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import org.apache.log4j.Logger; import org.dom4j.Document; import org.dom4j.DocumentHelper; i

UWP 读取本地XML文件

读取本地XML文件时要将xxx.xml文件的“生成操作”改为“嵌入的资源”会比较好,在手机上运行的话需要改为“内容” <?xml version="1.0" encoding="utf-8"?> <DataSet xmlns="http://WebXml.com.cn/"> <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata

boost::property_tree读取解析.xml文件

1)read_xml 支持中文路径  boost::property_tree::wptree wpt;    std::locale::global(std::locale(""));    boost::property_tree::xml_parser::read_xml("E:\\测试\\test.xml",wpt); 2)get  ptree pt;    read_xml("D://test1.xml",pt); //读入一个xml文

java使用dom读取,更新xml文件

package com.sun.xml; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import javax.xml.parsers.Docu

dom4j递归读取struts.xml文件

<pre name="code" class="java">package junitTest; import java.io.IOException; import java.util.Iterator; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.S

CCLablettf读取显示xml文件内容显示中文

CCDictionary *strings = CCDictionary::createWithContentsOfFile("tips2.xml"); const char *hello = ((CCString*)strings->valueForKey("tp1"))->m_sString.c_str(); CCLabelTTF *labelHello = CCLabelTTF::create(hello, "fonts/Microsof

[SAP ABAP开发技术总结]ABAP读取写XML文件

目录导航 声明:原创作品,转载时请注明文章来自SAP师太博客,并以超链接形式标明文章原始出处,否则将追究法律责任!原文出自: 20.6.         XML. 236 20.6.1.     生成... 237 20.6.2.     解析... 240 20.6.     XML if_ixml if_ixml_documentif_ixml_node if_ixml_element if_ixml_istream if_ixml_ostream document.element.ATTR

Java修炼之路——读取XML文件

这次来跟记录下java下如何操作xml文件.其实用过python去爬虫的话,那么应该很容易上手.java中有一个库dom4j就跟python中的lxml类似. 这里要重点强调下,在使用dom4j库的时候,其实它还有一个依赖包,就是jaxen.不添加的可是会报错的.(dom4j和jaxen的下载链接都整理好了在底部) 这里主要就是讲讲怎么用dom4j来读取的xml文件(可以直接从网络上加载,或者本地) //这个是官网上copy的,直接从加载文件 public class Foo { public