• xml 解析


    xml的合成和解析有两种方式:

    1. JAXB

    2. dom4j

    1. JAXB(Java Architecturefor XML Binding)

         1.1 提供将xml转化成对象。

        public static <T> T convertDto(String domXml, Class<T> clazz) throws JAXBException {
            T t = null;
            JAXBContext context = JAXBContext.newInstance(clazz);
            Unmarshaller unmarshaller = context.createUnmarshaller();
            t = (T) unmarshaller.unmarshal(new StringReader(domXml));
           return t;
        }

    对象要设置标识:

    @XmlRootElement(name="request")
    @XmlAccessorType(XmlAccessType.FIELD)
    public class TestDto {

        1.2  提供将对象转化成xml对象。

    public static <T> String convertXml(T t) throws JAXBException {
            JAXBContext context = JAXBContext.newInstance(t.getClass());
            Marshaller marshaller = context.createMarshaller();
            String str = null;
            try(ByteArrayOutputStream os = new ByteArrayOutputStream()){
                marshaller.marshal(t, os);
                str = os.toString();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return str;
        }

    2. dom4j

    参考文献 DOM4j的用法 (https://blog.csdn.net/qq_24065713/article/details/77970469)

    首先引入DOM4j的jar包。

    获取文件信息:

    SAXReader reader = new SAXReader();
    Document document = reader.read(new File(versionFile));
    Element root = document.getRootElement();

    Element element = root.element("db");//获取根元素下的子元素

    element .attributeValue("name");//获取元素的属性值

    element.getText();//获取元素的内容

    element.setText(***);  //注意内容不能为null

    写入完毕后,要进行重新覆盖保存才能生效,要不然修改的是内存中的信息。

    // 文件写入
            try(OutputStream os = new FileOutputStream(file)){
                XMLWriter writer = new XMLWriter(os);
                writer.write(document);
                writer.flush();
                writer.close();
            }

    ※ 注意在使用XMLWriter 时 文件的编码格式,默认采用系统的编码格式。

  • 相关阅读:
    [PHP] 自定义错误处理
    [PHP] url的pathinfo模式加载不同控制器的实现
    [PHP] 自动加载的实现
    [javaSE] java获取文件列表
    [PHP] PHP请求Socket接口测试
    [PHP] java读取PHP接口数据
    [PHP] 读取大文件并显示
    [javaSE] java上传图片给PHP
    HDUOJ----Eddy's research I
    HDUOJ--8球胜负
  • 原文地址:https://www.cnblogs.com/DennyZhao/p/8744799.html
Copyright © 2020-2023  润新知