景桓侯 2018-09-23 07:05 采纳率: 0%
浏览 1461

dom4j 解析XML,selectNodes()正常 .selectSingleNode 返回null

 <?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,不知道问题出现在哪里,求大神指教,

  • 写回答

1条回答 默认 最新

  • dabocaiqq 2018-09-24 12:17
    关注
    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集