2 tzizi5566 tzizi5566 于 2015.07.13 14:51 提问

使用DOM4J 怎么解析这种XML?
xml
<?xml version='1.0' encoding='UTF-8'?>
<DBSET RESULT="1">
    <R>
        <C N="RLT_FLAG">0</C>
        <C N="TASK_TAIL">
            <DBSET RESULT="2">
                <R>
                    <C N="TASK_NO">131103507930</C>
                    <C N="TASK_TOTAL">8</C>
                    <C N="TASK_NODONE">8</C>
                    <C N="TASK_TYPE">01</C>
                </R>
            </DBSET>
        </C>
    </R>
</DBSET>

我使用DOM4J只能解析到RLT_FLAG = 0 就没有了,希望高手能帮忙解决下

主要是不会解析这种xml,根据网上看来的自己试只能解析到RLT_FLAG。

2个回答

lingfeiwen
lingfeiwen   2015.07.13 15:05
已采纳

你这个xml格式不是很标准,节点里面的内容不一样。解析这种xml需要首先确定节点到底有多少中结构,从你贴出来的xml看来,只有两中结构,一种是下面没有子节点,一种是有子节点。这时候使用程序去解析,必须做判断。当没有子节点的时候如何解析,有子节点的时候怎么去解析,针对两中结构分别做出不同的解析处理。

lingfeiwen
lingfeiwen DOM4J只是提供了解析操作的API给我们用,但是具体的解析逻辑还是要我们自己去写啊。你解析到<C N="TASK_TAIL">要判断有没有子节点,有子节点应该取子节点<DBSET RESULT="2">再问有没有子节点,一直这样递归下去。没子节点就返回节点的值
2 年多之前 回复
tzizi5566
tzizi5566 问题就出在有子节点的地方不知道dom4j怎么解析下去了。。
2 年多之前 回复
java_zc
java_zc   2015.07.13 14:54

什么意思?只能解析到0这一行

Csdn user default icon
上传中...
上传图片
插入图片