Java创建,解析XML片段文件,无根节点root

来源:互联网 发布:js 同级下一个元素 编辑:程序博客网 时间:2024/05/19 08:39

1. 创建xml文件

  • 包引用,需要导入如下三个包
    这里写图片描述
import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.w3c.dom.Document;import org.w3c.dom.Element;import java.util.ArrayList;import java.util.Collection;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import java.util.concurrent.TimeUnit;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import javax.xml.transform.Transformer;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.TransformerConfigurationException;import javax.xml.transform.TransformerException;import javax.xml.transform.TransformerFactory;import javax.xml.transform.stream.StreamResult;
  • 具体实现
    public String createXmlInfo(String dst_ip) {        // create xmlInfo pushed to snc        String xmlStr = null;        try {            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();            DocumentBuilder builder = factory.newDocumentBuilder();            Document document = builder.newDocument();            document.setXmlVersion("1.0");            Element aclGroup = document.createElement("aclGroup");            document.appendChild(aclGroup);            Element aclNumOrName = document.createElement("aclNumOrName");            aclNumOrName.setTextContent("secflow");            aclGroup.appendChild(aclNumOrName);            Element aclStep = document.createElement("aclStep");            aclStep.setTextContent("3");            aclGroup.appendChild(aclStep);            Element aclType = document.createElement("aclType");            aclType.setTextContent("Advance");            aclGroup.appendChild(aclType);            Element aclRuleAdv4s = document.createElement("aclRuleAdv4s");            Element aclRuleAdv4 = document.createElement("aclRuleAdv4");            Element aclRuleID = document.createElement("aclRuleID");            aclRuleID.setTextContent("4");            aclRuleAdv4.appendChild(aclRuleID);            Element aclProtocol = document.createElement("aclProtocol");            aclProtocol.setTextContent("0");            aclRuleAdv4.appendChild(aclProtocol);            Element aclSourceIp = document.createElement("aclSourceIp");            aclSourceIp.setTextContent("0.0.0.0");            aclRuleAdv4.appendChild(aclSourceIp);            Element aclSrcWild = document.createElement("aclSrcWild");            aclSrcWild.setTextContent("0.0.0.255");            aclRuleAdv4.appendChild(aclSrcWild);            Element aclDestIp = document.createElement("aclDestIp");            aclDestIp.setTextContent(dst_ip);            aclRuleAdv4.appendChild(aclDestIp);            Element aclDestWild = document.createElement("aclDestWild");            aclDestWild.setTextContent("0.0.0.255");            aclRuleAdv4.appendChild(aclDestWild);            Element aclRuleName = document.createElement("aclRuleName");            aclRuleName.setTextContent("rule1");            aclRuleAdv4.appendChild(aclRuleName);            aclRuleAdv4s.appendChild(aclRuleAdv4);            aclGroup.appendChild(aclRuleAdv4s);            TransformerFactory transFactory = TransformerFactory.newInstance();            Transformer transFormer = null;            try {                transFormer = transFactory.newTransformer();            } catch (TransformerConfigurationException e) {                log.info("{}",e.getMessage());            }            DOMSource domSource = new DOMSource(document);            ByteArrayOutputStream bos = new ByteArrayOutputStream();            try {                transFormer.transform(domSource, new StreamResult(bos));            } catch (TransformerException e) {                log.info("{}",e.getMessage());            }            org.dom4j.Document doc = null;            try {                doc = DocumentHelper.parseText(bos.toString());            } catch (DocumentException e) {                e.printStackTrace();            }            String test = doc.node(0).asXML();            xmlStr = test.replace("<aclGroup>","").replace("</aclGroup>","");        }        catch (ParserConfigurationException e) {            log.info("{}",e.getMessage());        }        return xmlStr;    }
  • 结果:生成xml数据如下
<aclStep>5</aclStep><aclType>Advance</aclType><aclRuleAdv4s>     <aclRuleAdv4>              <aclRuleID>1</aclRuleID>              <aclProtocol>0</aclProtocol>              <aclSourceIp>192.168.1.0</aclSourceIp>              <aclSrcWild>0.0.0.255</aclSrcWild>              <aclDestIp>192.168.2.0</aclDestIp>              <aclDestWild>0.0.0.255</aclDestWild>              <aclRuleName>rule1</aclRuleName>      </aclRuleAdv4>    </aclRuleAdv4s>
0 0
原创粉丝点击