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
}
<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>