日期:2014-05-17  浏览次数:20689 次

DOM4j查询节点xpath中如何处理中括号[]
前端页面提交过来的参数名称中包含中括号,这些参数最终被封装成xml。封装后的xml如下:

<user password="admin" account="admin" email="admin@vilang.com" mobile="18888888888">
<usergroups>
  <usergroup[0] id="12" name="Group_one"/>
  <usergroup[1] id="13" name="Group_two"/>
</usergroups>
</user>


现需要通过dom4j在xml判断是否存在usergroup[0]节点,如何判断?

尝试过这样判断,但因为节点中含有中括号[],导致无法查询节点:

Element objectElement = (Element) object.selectSingleNode("./usergroups/usergroup[0]");
if(null == objectElement)
{
//... 
}




------解决方案--------------------
像这种的xml的节点名称都不规范了,根本就不能解析成Document文档。你把这些中括号的脚标去掉。这些脚标应该是代表这个元素是一个数组并且是第几个元素,在封装成xml的时候要把脚标去掉要不然xml就不规范不能解析
------解决方案--------------------
要么写个正则提取下,或者用别的方式提取一下,毕竟这规则都是人写的,自己写一个也不是太难。
或者就正则替换一下这种[]标记,然后用dom读取
------解决方案--------------------
我不得不说就这样的设计糟透了。
花括号直接去了吧。