微科社区,轻松开发从此开始! 请登陆 免费注册

微科社区

当前位置:首页 > Java平台 > J2SE >

[DOM4J]关于XML报文子节点包含中文符号 "()

时间:2017-01-16 03:31  浏览:努力统计中...
String xml = ; xml += TBLDATA; xml += 姓名张三/姓名单位(部门)/单位(部门); xml += /TBLDATA; Document doc = null; try{ doc = DocumentHelper.parseText(xml); }catch (Exception e) { e.printStackTrace(); } Element root = doc.
String xml = "";
xml += "<TBLDATA>";
xml += "<姓名>张三</姓名><单位(部门)></单位(部门)>";
  xml += "</TBLDATA>";
Document doc = null;
try{
doc = DocumentHelper.parseText(xml); 
}catch (Exception e) {
e.printStackTrace();
}
Element root = doc.getRootElement();
String dw = root.elementTextTrim("单位(部门)");
System.out.println("dw = " + dw);

求助求助!!!!!!!!!!!
这样就报错,提示我单位之后需要是">"或"/>",问题出在部门这个中文括号这里,去掉中文括号就不会报错.
求助:如果不去括号,需要怎么处理?


先将</单位(部门)>中的部门去掉,看是否可以,如果可以就说明不识别()或需要转译字符。



我的想法是将"()"用别的字符替换,我试了下用字母、数字、汉字都行,用符号就不行了。然后根据你替换后的节点名去解析

谢谢,最后我写了个类将其替换为"".
Java code

好像XML的命名规则就是这么规定的,没有好的办法
String xml = "";xml += "<TBLDATA>";xml += "<姓名>张三</姓名><单位(部门)>ss</单位(部门)>";xml += "</TBLDATA>";//将“(”替换成leftxml = xml.replace("", "left"); //将“)”替换成rightxml = xml.replace("", "right");System.out.println(xml+","+xml.indexOf(""));try { Document dom=DocumentHelper.parseText(xml); System.out.println(dom.getRootElement().elementTextTrim("单位left部门right"));} catch (Exception e) { e.printStackTrace();}



    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    ------分隔线------