JAVA生成XML数据格式

1.导入pom

        <!--xml-->
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6.1</version>
        </dependency>

简单demo:

  /**
     * 生成xml格式的字符串 测试
     *
     * @return
     */
    public static String createXmlString2() {
        //创建document对象
        org.dom4j.Document document = DocumentHelper.createDocument();
        List list = new ArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        //设置编码
        document.setXMLEncoding("UTF-8");
        //创建根节点
        Element requestData = document.addElement("table");
        for (int i = 0; i < list.size(); i++) {
            Element r1 = requestData.addElement("r");
            Element classifyNameRow = r1.addElement("i");
            //在根节点加入子节点
            Element categoriename = classifyNameRow.addAttribute("n", "categoriename");//分类
            //添加内容
            categoriename.setText(String.valueOf(i));
        }
        //将document对象转换成字符串
        String xml = document.asXML();
        System.out.println("XML字符  " + xml);
        return xml;
    }

简单限制:

    private static boolean lock = true;

    public void pushHengRuiSPU() throws InterruptedException {
        if (lock) {
            lock = false;
            hengRuiService.batchHengRuiProInfo();
            lock = true;
        }
    }

单个对象处理XMl:

  /**
     * 生成xml格式的字符串 单个对象处理
     *
     * @return
     */
    public static String createXmlString(ProductHengRuiInfo productHengRuiInfo) {
        //创建document对象
        org.dom4j.Document document = DocumentHelper.createDocument();
        //设置编码
        document.setXMLEncoding("UTF-8");
        //创建根节点
        Element requestData = document.addElement("table");
        Element r = requestData.addElement("r");
        Element classifyNameRow = r.addElement("i");
        Element productNameRow = r.addElement("i");
        Element aliasRow = r.addElement("i");
        Element casRow = r.addElement("i");
        Element catalogNoRow = r.addElement("i");
        Element brandRow = r.addElement("i");
        Element sizeRow = r.addElement("i");
        Element priceRow = r.addElement("i");
        Element qtyRow = r.addElement("i");
        Element currencyRow = r.addElement("i");
        Element statusRow = r.addElement("i");
        Element structureRow = r.addElement("i");


        //在根节点加入子节点
        Element categoriename = classifyNameRow.addAttribute("n", "categoriename");//分类
        //添加内容
        categoriename.setText(Objects.requireNonNullElse(productHengRuiInfo.getCategoriename(), ""));

        //在根节点加入子节点
        Element productname = productNameRow.addAttribute("n", "productname");//中文名
        //添加内容
        productname.setText(Objects.requireNonNullElse(productHengRuiInfo.getName(), ""));

        //在根节点加入子节点
        Element alias = aliasRow.addAttribute("n", "alias");//别名
        //添加内容
        alias.setText(Objects.requireNonNullElse(productHengRuiInfo.getNameAlias(), ""));

        //在根节点加入子节点
        Element cas = casRow.addAttribute("n", "cas");//cas号
        //添加内容
        cas.setText(Objects.requireNonNullElse(productHengRuiInfo.getCasNo(), ""));

        //在根节点加入子节点
        Element catalogno = catalogNoRow.addAttribute("n", "catalogno");//产品号
        //添加内容
        catalogno.setText(Objects.requireNonNullElse(productHengRuiInfo.getProductNum(), ""));

        //在根节点加入子节点
        Element brand = brandRow.addAttribute("n", "brand");//品牌
        //添加内容
        brand.setText("MCE");

        //在根节点加入子节点
        Element size = sizeRow.addAttribute("n", "size");//规格
        //添加内容
        size.setText(Objects.requireNonNullElse(productHengRuiInfo.getSpecification(), ""));

        //在根节点加入子节点
        Element price = priceRow.addAttribute("n", "price");//价格
        //添加内容
        price.setText(String.valueOf(Objects.requireNonNullElse(productHengRuiInfo.getPrice(), "")));

        //在根节点加入子节点
        Element qty = currencyRow.addAttribute("n", "qty");//包装库存量
        //添加内容
        qty.setText(String.valueOf(Objects.requireNonNullElse(productHengRuiInfo.getSku(), "")));

        //在根节点加入子节点
        Element currency = qtyRow.addAttribute("n", "currency");//货币
        //添加内容
        currency.setText("RMB");

        //在根节点加入子节点
        Element status = statusRow.addAttribute("n", "status");//上下架状态
        //添加内容
        status.setText(Objects.requireNonNullElse(productHengRuiInfo.getStatus(), ""));

        //在根节点加入子节点
        Element structure = structureRow.addAttribute("n", "structure");//上下架状态
        //添加内容
        structure.setText(Objects.requireNonNullElse(productHengRuiInfo.getSmiles(), ""));

        //将document对象转换成字符串
        String xml = document.asXML();
        return xml;
    }

生成示例:

<?xml version="1.0" encoding="UTF-8"?>
<table>
     <r>
        <i n="categoriename">XXXX</i>
        <i n="productname">XXXX</i>
        <i n="alias">XXXX</i>
        <i n="cas">XXXX</i>
        <i n="catalogno">XXXX</i>
        <i n="brand">XXXX</i>
        <i n="size">XXXX</i>
        <i n="price">XXXX</i>
        <i n="currency">XXXX</i>
        <i n="qty">XXXX</i>
        <i n="status">XXXX</i>
        <i n="structure">XXXX</i>
    </r>
</table>

集合对象处理:

 /**
     * 生成xml格式的字符串 集合处理
     *
     * @return
     */
    public static String createXmlStringList(List<ProductHengRuiInfo> productHengRuiInfo) {
        //创建document对象
        org.dom4j.Document document = DocumentHelper.createDocument();
        //设置编码
        document.setXMLEncoding("UTF-8");
        //创建根节点
        Element requestData = document.addElement("table");
        productHengRuiInfo.forEach(q -> {
            Element r = requestData.addElement("r");
            Element classifyNameRow = r.addElement("i");
            Element productNameRow = r.addElement("i");
            Element aliasRow = r.addElement("i");
            Element casRow = r.addElement("i");
            Element catalogNoRow = r.addElement("i");
            Element brandRow = r.addElement("i");
            Element sizeRow = r.addElement("i");
            Element priceRow = r.addElement("i");
            Element qtyRow = r.addElement("i");
            Element currencyRow = r.addElement("i");
            Element statusRow = r.addElement("i");
            Element structureRow = r.addElement("i");


            //在根节点加入子节点
            Element categoriename = classifyNameRow.addAttribute("n", "categoriename");//分类
            //添加内容
            categoriename.setText(Objects.requireNonNullElse(q.getCategoriename(), ""));

            //在根节点加入子节点
            Element productname = productNameRow.addAttribute("n", "productname");//中文名
            //添加内容
            productname.setText(Objects.requireNonNullElse(q.getName(), ""));

            //在根节点加入子节点
            Element alias = aliasRow.addAttribute("n", "alias");//别名
            //添加内容
            alias.setText(Objects.requireNonNullElse(q.getNameAlias(), ""));

            //在根节点加入子节点
            Element cas = casRow.addAttribute("n", "cas");//cas号
            //添加内容
            cas.setText(Objects.requireNonNullElse(q.getCasNo(), ""));

            //在根节点加入子节点
            Element catalogno = catalogNoRow.addAttribute("n", "catalogno");//产品号
            //添加内容
            catalogno.setText(Objects.requireNonNullElse(q.getProductNum(), ""));

            //在根节点加入子节点
            Element brand = brandRow.addAttribute("n", "brand");//品牌
            //添加内容
            brand.setText("MCE");

            //在根节点加入子节点
            Element size = sizeRow.addAttribute("n", "size");//规格
            //添加内容
            size.setText(Objects.requireNonNullElse(q.getSpecification(), ""));

            //在根节点加入子节点
            Element price = priceRow.addAttribute("n", "price");//价格
            //添加内容
            price.setText(String.valueOf(Objects.requireNonNullElse(q.getPrice(), "")));

            //在根节点加入子节点
            Element qty = currencyRow.addAttribute("n", "qty");//包装库存量
            //添加内容
            qty.setText(String.valueOf(Objects.requireNonNullElse(q.getSku(), "")));

            //在根节点加入子节点
            Element currency = qtyRow.addAttribute("n", "currency");//货币
            //添加内容
            currency.setText("RMB");

            //在根节点加入子节点
            Element status = statusRow.addAttribute("n", "status");//上下架状态
            //添加内容
            status.setText(Objects.requireNonNullElse(q.getStatus(), ""));

            //在根节点加入子节点
            Element structure = structureRow.addAttribute("n", "structure");//上下架状态
            //添加内容
            structure.setText(Objects.requireNonNullElse(q.getSmiles(), ""));

        });

        //将document对象转换成字符串
        String xml = document.asXML();
        return xml;
    }

生成示例:

<?xml version="1.0" encoding="UTF-8"?>
<table>
     <r>
        <i n="categoriename">XXXX</i>
        <i n="productname">XXXX</i>
        <i n="alias">XXXX</i>
        <i n="cas">XXXX</i>
        <i n="catalogno">XXXX</i>
        <i n="brand">XXXX</i>
        <i n="size">XXXX</i>
        <i n="price">XXXX</i>
        <i n="currency">XXXX</i>
        <i n="qty">XXXX</i>
        <i n="status">XXXX</i>
        <i n="structure">XXXX</i>
    </r>
     <r>
        <i n="categoriename">XXXX</i>
        <i n="productname">XXXX</i>
        <i n="alias">XXXX</i>
        <i n="cas">XXXX</i>
        <i n="catalogno">XXXX</i>
        <i n="brand">XXXX</i>
        <i n="size">XXXX</i>
        <i n="price">XXXX</i>
        <i n="currency">XXXX</i>
        <i n="qty">XXXX</i>
        <i n="status">XXXX</i>
        <i n="structure">XXXX</i>
    </r>
</table>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Java中自带的DOM或者SAX解析器来生成XML格式的数据。下面是一个使用DOM解析器生成XML格式数据并返回的示例代码: ``` import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.w3c.dom.Element; public class XMLDataGenerator { public static String generateXMLData() { try { // 创建DocumentBuilderFactory和DocumentBuilder DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); // 创建Document对象 Document doc = dBuilder.newDocument(); // 创建根元素 Element rootElement = doc.createElement("employees"); doc.appendChild(rootElement); // 创建员工元素 Element employee = doc.createElement("employee"); rootElement.appendChild(employee); // 增加员工属性 employee.setAttribute("id", "001"); // 增加员工子元素 Element name = doc.createElement("name"); name.appendChild(doc.createTextNode("张三")); employee.appendChild(name); Element age = doc.createElement("age"); age.appendChild(doc.createTextNode("25")); employee.appendChild(age); Element gender = doc.createElement("gender"); gender.appendChild(doc.createTextNode("男")); employee.appendChild(gender); // 将Document对象转换为XML格式字符串 TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(doc); StringWriter writer = new StringWriter(); StreamResult result = new StreamResult(writer); transformer.transform(source, result); return writer.getBuffer().toString(); } catch (ParserConfigurationException | TransformerException e) { e.printStackTrace(); return null; } } } ``` 在上面的代码中,我们使用了Java自带的DOM解析器来生成XML格式数据,并将生成的数据转换成字符串返回。你可以根据需要修改代码来生成适合自己的XML格式数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值