新建一個(gè)XML工具類定義自己需要的拼接信息
public class XmlUtil {
public static Stringlt ="<";
public static StringltEnd ="</";
public static Stringrt =">";
public static StringrhtEnd ="/>";
public static Stringquotes ="\"";
public static Stringequal ="=";
public static Stringblank =" ";
/**
? ? * @param xmlVo
? ? * @return
? ? * @category 拼接XML各元素信息
*/
? ? public static StringBuffer elementToXml(XMLVo xmlVo) {
StringBuffer result =new StringBuffer();
// 元素開始
? ? ? ? result.append(lt).append(xmlVo.getName());
// 判斷是否有屬性
? ? ? ? if (xmlVo.getProperty() !=null && xmlVo.getProperty().size() >0) {
Iterator iter = xmlVo.getProperty().keySet().iterator();
while (iter.hasNext()) {
String key = String.valueOf(iter.next());
String value = xmlVo.getProperty().get(key);
result.append(blank).append(key).append(equal).append(quotes)
.append(value).append(quotes).append(blank);
}
}
result.append(rt);// 結(jié)束標(biāo)記
/*
* 判斷是否是葉子節(jié)點(diǎn) 是葉子節(jié)點(diǎn)先巴,添加節(jié)點(diǎn)內(nèi)容 不是葉子節(jié)點(diǎn)碗啄,循環(huán)添加子節(jié)點(diǎn)
*/
? ? ? ? if (xmlVo.isIsleaf()) {
result.append(xmlVo.getNodeText());
}else {
for (XMLVo temp : xmlVo.getChild()) {
result.append(elementToXml(temp));
}
}
// 元素結(jié)束
? ? ? ? result.append(ltEnd).append(xmlVo.getName()).append(rt);
return result;
}
/**
? ? * @param xmlVo
? ? * @return
? ? * @category 拼接XML申明信息
*/
? ? public static String element2Xml(XMLVo xmlVo) {
StringBuffer body =elementToXml(xmlVo);
StringBuffer head =new StringBuffer(
"<?xml version=\"1.0\" encoding=\"gbk\" standalone=\"yes\"?>");
head.append(body);
return head.toString();
}
}
新建一個(gè)XMLVo對(duì)象
@Data
@AllArgsConstructor
@NoArgsConstructor
public class XMLVo {
private Stringname;// 元素名
? ? private StringnodeText ="";// 文本值
? ? private Mapproperty =new HashMap();// 屬性
? ? private boolean isleaf =true;// 是否子節(jié)點(diǎn)
? ? private Listchild =new ArrayList();// 子節(jié)點(diǎn)
? ? public XMLVo(String name) {
this.name = name;
}
/**
* 添加屬性
*
? ? * @param key
? ? * @param value
? ? */
? ? public void addProperty(String key, String value) {
this.property.put(key, value);
}
/**
* 添加子節(jié)點(diǎn)
*
? ? * @param xl
? ? */
? ? public void addChild(XMLVo xl) {
this.child.add(xl);
if (this.isleaf &&this.child.size() >0) {
this.isleaf =false;
}
}
}
public String StringToXML(String CustomerName, String CertType, String CertID) {
log.info("CustomerName:{}-->,CustomerName:{}-->,CustomerName:{}-->", CustomerName, CertType, CertID);
XMLVo amarRuleService =new XMLVo("AmarRuleService");
amarRuleService.addProperty("TradeCode",TradeCode);
XMLVo callNo =new XMLVo("CallNo");
String CallNo = IDUtil.getUUId();
callNo.setNodeText(CallNo);
XMLVo customerName =new XMLVo("CustomerName");
customerName.setNodeText(CustomerName);
XMLVo certType =new XMLVo("CertType");
certType.setNodeText(CertType);
XMLVo certID =new XMLVo("CertID");
certID.setNodeText(CertID);
XMLVo serialNo =new XMLVo("SerialNo");
serialNo.setNodeText("");
XMLVo relationShip1 =new XMLVo("RelationShip1");
relationShip1.setNodeText("");
XMLVo callUserID =new XMLVo("CallUserID");
callUserID.setNodeText(CallUserID);
XMLVo typeNo =new XMLVo("TypeNo");
typeNo.setNodeText("");
XMLVo attrib2 =new XMLVo("Attrib2");
attrib2.setNodeText(Attrib2);
XMLVo timeLimit =new XMLVo("TimeLimit");
timeLimit.setNodeText(TimeLimit);
amarRuleService.addChild(callNo);
amarRuleService.addChild(customerName);
amarRuleService.addChild(certType);
amarRuleService.addChild(certID);
amarRuleService.addChild(serialNo);
amarRuleService.addChild(relationShip1);
amarRuleService.addChild(callUserID);
amarRuleService.addChild(typeNo);
amarRuleService.addChild(attrib2);
amarRuleService.addChild(timeLimit);
log.info("XmlUtil.element2Xml(axmlVo){}", XmlUtil.element2Xml(amarRuleService));
return XmlUtil.element2Xml(amarRuleService);
}