<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xml>
<china>
<province name="北京">
<city>东城区</city>
<city>西城区</city>
<city>崇文区</city>
<city>宣武区</city>
<city>朝阳区</city>
<city>丰台区</city>
<city>石景山区</city>
<city>海淀区</city>
<city>门头沟区</city>
<city>房山区</city>
<city>通州区</city>
<city>顺义区</city>
<city>昌平区</city>
<city>大兴区</city>
<city>怀柔区</city>
<city>平谷区</city>
<city>密云县</city>
<city>延庆县</city>
</province>
<china>
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置请求编码
req.setCharacterEncoding("utf-8");
// 注意,这里内容类型必须是text/xml,不然客户端得到的就不是xml文档对象,而是字符串了
resp.setContentType("text/xml;charset=utf-8");
String provinceName = req.getParameter("pname");//获取省份名称
System.out.println(provinceName);//可以获取参数,正常
try {
InputStream input = this.getClass().getResourceAsStream("/china.xml");
System.out.println(input.available());//解析正常,可以获取流大小
SAXReader reader = new SAXReader();
Document document = reader.read(input);
// Element root = document.getRootElement();
System.out.println(document.asXML());//能够解析xml文档
// 查询指定省份名称的元素
Element node = (Element) document.getRootElement().selectSingleNode("//province[@name=\"" + provinceName + "\"]");//这里使用document.selectSingleNode("//chinaprovince[@name=\"" + provinceName + "\"]")仍然返回null
System.out.println(node);//打印返回null
String xml = node.asXML();//NUllPointException
// 把元素转换成字符串发送给客户端
resp.getWriter().print(xml);
} catch (Exception e) {
e.printStackTrace();
}
}
总结以前的笔记,改善了学习时候ajax写法,但是Servlet未做修改,结果出现这种问题,将以前试验成功的代码粘贴进来(Servlet+ajax.jsp),也出现这种nullPointException,不知道问题出现在哪里,求大神指教,
https://blog.csdn.net/ououou123456789/article/details/8666955?locationNum=13&fps=1