一、作为一个骨灰级菜鸟才入社会,因公司要求写了一个接口
基本业务流程描述:ITSM的需求上线版本变更后,将变更后的上线时间,通过接口告知OA,OA根据此时间更新评估工作量列表展示的上线时间,以及需求实施的计划完成时间
itsm那边是通过xml的形式传过来的上线时间,所以这边首先就是要解析xml 此处附上我代码中的xml
现在开始解析
//使用SAXReader需要导入dom4j-full.jar包。 dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的
SAXReader reader=new SAXReader();
//这是从一个xml中逐个读入字节
StringReader sr=new StringReader(xml);
Document doc=null;
try {
doc=reader.read(sr);
demandid=getNodeText(doc, "demandid");
System.out.println(demandid);
List list=getNodeList(doc, "sub-demands", "sub-demand");
if(list.size()>0){
for(Iterator iterator = list.iterator(); iterator
.hasNext();){
Element element = (Element) iterator.next();
demandsubid=isEmpty(element.elementText("demandsubid"));
systemid=isEmpty(element.elementText("systemid"));
factoryid=isEmpty(element.elementText("factoryid"));
onlineverno=isEmpty(element.elementText("onlineverno"));
onlinetime=isEmpty(element.elementText("onlinetime"));
String sql="update demand_workload set onlinetime='"+onlinetime+"' where demandid='"+demandid+"' and demandsubid='"+demandsubid+"' and systemid='"+systemid+"' and factoryid='"+factoryid+"' and onlineverno='"+onlineverno+"'";
update(sql);
}
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
获取节点值
//SelectSingleNode方法返回单个节点
public static String getNodeText(Document doc, String nodeName) {
Node node = doc.selectSingleNode("//" + nodeName);
return (node == null || node.getText() == null) ? "" : node.getText();
}
获取某节点下的所有子节点列表
public static List getNodeList(Document doc, String paraElement,
String subElement) throws Exception {
List list = new ArrayList();
Element root = doc.getRootElement();
Element parElement = root.element(paraElement);
if (parElement == null) {
throw new Exception(
"方法:getNodeList(),传入参数paraElement节点名称在xml文档格式中不存在");
}
list = parElement.elements(subElement);
return list;
}