在做DOM解析XML的时候遇到一个问题,一直迷惑抑郁中 希望大家帮我解答
问题是这样:
1、我有像下列的xml文件<target>
    <id>1</id>
    <belong>1</belong>
    <descriptor>....</descriptor>
</target>
<target>
    <id>2</id>
    <belong>1</belong>
    <descriptor>....</descriptor>
</target>
<target>
    <id>3</id>
    <belong>2</belong>
    <descriptor>....</descriptor>
</target>
<target>
    <id>4</id>
    <belong>3</belong>
    <descriptor>....</descriptor>
</target>2、现在想要得到所有属于同一ID的对象组!应该怎么操作?没有很多分数 希望能得到解答

解决方案 »

  1.   

    1.最简单的是使用xpath.
    2.使用纯domApi的话,大概类似
    NodeList nl = root.getElementByName("target");int len = nl.getLength();//必须提前确定长度,不要在for中直接nl.getLength()List<Element > result = new ArrayList<Element >();
    for(int i=1;i<=len;i++){
       Element ele = (Element)nl.get(i);
       
       Node n = ele.fistChild();
       if(n.getName().equals("id") && n.fistChild().getValue().equals("1")){
           result.add(ele ele );
       }
    }好久没玩DOM了,手头也没有IDE,纯手写代码应该有不少错.
    你提的这个问题,应该是看一下API就能解决的问题...
    唯一值的注意的是,很多DOM实现中对获取元素中text部分都不完整,也就是有时候你通过Element<id>直接去获取1,2,3不一定能得到,而是需要继续找child Node(是个TextNode),然后再getValue.