[DOM4J]关于XML报文子节点包含中文符号 "()"
本帖最后由 chikk 于 2012-09-12 17:44:39 编辑
            		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);
这样就报错,提示我单位之后需要是">"或"/>",问题出在部门这个中文括号这里,去掉中文括号就不会报错.
求助:如果不去括号,需要怎么处理?
              
              
------解决方案--------------------我的想法是将"()"用别的字符替换,我试了下用字母、数字、汉字都行,用符号就不行了。然后根据你替换后的节点名去解析
String xml = "";
xml += "<TBLDATA>";
xml += "<姓名>张三</姓名><单位(部门)>ss</单位(部门)>";
xml += "</TBLDATA>";
//将“(”替换成left
xml = xml.replace("(", "left");
 //将“)”替换成right
xml = 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();
}