java生成xml字符串和创建xml本地文件

这是我第一次写博客,所以可能写得不太好,请大家见谅!!
之前在网上看到了很多java生成xml字符串和创建xml本地文件的文章,但是感觉不太完整和解释不太详细(可能是我没有找到。。。)!
所以我自己总结了一下知识,希望对大家有用,也方便自己查阅!!
这篇博客的思路:
1. 关键代码步骤
2. 代码设计思路
3. 运行的结果图片
4. 完整代码
5. 代码的使用 | 测试


关键代码块
Dom步骤
1. 创建DocumentBuilderFactory工厂对象: DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance():
2. 通过工厂对象,创建DocumentBuilder制作对象:DocumentBuilder builder = factory.newDocumentBuilder();
3. 通过制作对象,创建一个Document对象:Document document = builder.newDocument();
4. 创建节点:Element root = document.createElement(“节点名称”);
5. 添加节点:Element.appendChild(节点);
6. 节点添加属性:Element.setAttribute(“属性名”,”属性值“);
7. 节点间的内容:Element.setTextContent(“标签间内容”);
转换xml步骤
1. 创建TransformerFactory工厂对象:TransformerFactory transFactory = TransformerFactory.newInstance();
2. 通过工厂对象, 创建Transformer对象:Transformer transformer = transFactory.newTransformer();
3. 创建DOMSource对象:DOMSource domSource = new DOMSource(document);
4. 创建字节流:ByteArrayOutputStream bos = new ByteArrayOutputStream();
5. Transformer的transform()方法将DOM树转换成XML:Transformer对象.transform(DOMSource对象, new StreamResult(bos));

以上为关键代码,如果大家已经有了自己的思路和想法的话,可以不用再往下看了!!


下面为我自己的代码设计思路(可能不一定很好,所以大家也可用自己的设计)
代码设计思路:
1. 创建类XmlFormat:为xml的格式类,一个XmlFormat代表一个层级
(包含:根节点,层级节点,属性节点,设置节点的内容方法)
2. 创建类XmlHandler:用于生成xml字符串 和 生成xml文件
(包含:XmlFormat的集合,创建dom树的方法,生成xml字符串的方法,生成xml文件的方法,重载两个接口方法)


运行的结果图片:
这是第一种格式的xml图(生成的xml并没有换行,我是手动换的,方便图片制作)
第一种格式的xml图(生成的xml并没有换行,我是手动换的,方便图片制作)
这是第二种格式的xml图(生成的xml并没有换行,我是手动换的,方便图片制作)
第二种格式的xml图(生成的xml并没有换行,我是手动换的,方便图片制作)
这是本地生成的xml
这是本地生成的xml这里写图片描述


完整代码
XmlFormat类:xml的格式类

import java.util.HashMap;

public class XmlFormat {
   
   

    //根节点名称
    private String rootName;
    //层级节点 名称/值 (值可为空。当值为空时,代表节点下带有属性节点。 当值不等于空时,代表该节点直接包含内容,没有属性节点)
    private HashMap<String, Object> multiplyNames;
    //属性节点 名称/值
    private HashMap<String, Object> propertyNames;

    /**构造函数
     * 参数: 根节点名称
     * */
    public XmlFormat(String rootName){
        this.rootName = rootName;
        this.multiplyNames = new HashMap<String, Object>();
        this.propertyNames = new HashMap<String, Object>();
    }

    /**(重载)用于xml层级节点键/值(没有属性节点)
     * 参数: 层级节点名称, 层级节点的值
     * */
    public void setElement(String multiplyName, String multiplyValue) {
        this.multiplyNames.put(multiplyName, multiplyValue);
    }

    /**(重载)用于xml层级节点,属性节点
     * 参数: 层级节点名称, 属性节点键/值
     * */
    public void setElement(String multiplyName, HashMap<String, Object> propertyNames) {
        this.multiplyNames.put(multiplyName, null);
        this.propertyNames = propertyNames;
    }

    /**
     * getter / setter
     * */
    ......
}

XmlHandler类:用于生成xml字符串 和 生成xml文件

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值