inputstream cannot be null(大神来看下 在线等)
用dom解析xml 其中一项电话号码有空值 然后报错 哪位大神来指点下 代码如下
package com.bean.company;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import com.bean.Test.CompanyMapList;
public class DomService {
//将XML转换为对象
public List<CompanyMapList> getCompanysMap(InputStream inputStream) throws Exception {
List<CompanyMapList> list = new ArrayList<CompanyMapList>();
// 创建一个Document解析工厂
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
// 将输入流解析为Document
Document document = builder.parse(inputStream);
// 整个文档就是一个节点文档 所以该节点就是所有内容
Element ele = document.getDocumentElement();
NodeList nodeList = ele.getElementsByTagName("CompanyMap"); //获取所有student节点 并且进行遍历
for (int i = 0; i < nodeList.getLength(); i++) {
Element ele2 = (Element) nodeList.item(i); //具体的一个student节点
CompanyMapList cml = new CompanyMapList();
//获取student节点下面的所有子节点 并且进行遍历
NodeList nodeList2 = ele2.getChildNodes();
for (int j = 0; j < nodeList2.getLength(); j++) {
if (nodeList2.item(j).getNodeType() == Node.ELEMENT_NODE) { //如果该节点是元素节点
if ("EMPLID".equals(nodeList2.item(j).getNodeName())) {
cml.setEMPLID(nodeList2.item(j).getFirstChild()
.getNodeValue());
}else if ("NAME".equals(nodeList2.item(j).getNodeName())) {
cml.setNAME(nodeList2.item(j).getFirstChild()
.getNodeValue());
}else if ("NATIONAL_ID".equals(nodeList2.item(j).getNodeName())) {
cml.setNATIONAL_ID(nodeList2.item(j).getFirstChild()
.getNodeValue());
} else if ("PHONE".equals(nodeList2.item(j).getNodeName())) {
cml.setPHONE(nodeList2.item(j).getFirstChild()
.getNodeValue());
}else if ("COMPANY_KD_DESCR".equals(nodeList2.item(j).getNodeName())) {
cml.setCOMPANY_KD_DESCR(nodeList2.item(j).getFirstChild()
.getNodeValue());
} else if ("COMPANY_KINGDEE".equals(nodeList2.item(j).getNodeName())) {
cml.setCOMPANY_KINGDEE(nodeList2.item(j).getFirstChild()
.getNodeValue());
}else if ("HIRE_DT".equals(nodeList2.item(j).getNodeName())) {
cml.setHIRE_DT(nodeList2.item(j).getFirstChild()
.getNodeValue());
}
}
}
list.add(cml); //添加到集合
}
return list;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String path = "http://10.3.2.88:8042/services/CompanyMap"+"jzt_Date-3"+"jzt_Date";
InputStream is = HttpUtils.getXML(path);
DomService service = new DomService();
try {
List<CompanyMapList> list = service.getCompanysMap(is);
for (CompanyMapList companyMapList : list) {
System.out.println(companyMapList.toString());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}