kele的gravatar头像
kele 2014-07-30 13:24:23

java dom4j解析xml字符串问题

java dom4j解析xml字符串问题

我想读取并输出图片中框中的这一段字符串,如果是末节点是可以读取出来,但是节点中有子节点的话,这个就不知道怎么读取了

所有回答列表(5)
最代码官方的gravatar头像
最代码官方  LV167 2014年7月30日

给你个思路,通过java正则来替换所有标签<>,示例如下:

String xml="<a>" +
		"<b>b</b>" +
		"<c>c</c>" +
		"<d>c</d>" +
		"<e>" +
		"<f>f</f>" +
		"<h>h</h>" +
		"</e>" +
		"</a>";

String ret=xml.replaceAll("<\\/?.*?>", " ");
System.out.println(ret);

结果输出:

  b  c  c   f  h   

思路不要局限在用java的xml框架去做,把xml当做普通字符串通过正则去查找,替换不更强大么?

评论(1) 最佳答案
wodeqq5的gravatar头像
wodeqq5  LV2 2014年7月30日

这就是老牛和新菜的区别啊!自愧不如

llh的gravatar头像
llh  LV15 2014年7月31日
采用递归也可以...   
public void treeWalk(Element element) {
        for ( int i = 0, size = element.nodeCount(); i < size; i++ ) {
            Node node = element.node(i);
            if ( node instanceof Element ) {
                treeWalk( (Element) node );
            }
            else {
                // do something....
            }
        }
    }
dengkj的gravatar头像
dengkj 2014年7月31日

我今天做了一个类似的功能,不过用的是jdom。
我把我的思路讲一下:
Element parameters = root.getChild("PARAMETERS");
Element users= parameters .getChild("users");
List userList = users.getChildren("user");
userList已经是一个Element的集合了。

kele的gravatar头像
kele  LV2 2014年9月1日

谢谢各位了。目前我暂时用的方法是 采用最代码官方的建议,用正则判断截取末端的节点,然后再用dom4j来解析XML类型的对象,这个方法挺好的

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友