java - Difficulties with internal tags when parsing xml -



java - Difficulties with internal tags when parsing xml -

i have next xml:

<fitness> <group id="1" name = "firstgroup"> <exercises id="1" name = "exercise1"> <implementation> hw </implementation> <videourl> apgw5xi8xfq </videourl> </exercises> </group> <group id = "2" name = "group2"> <exercises id = "5" name = "exercise5"> <implementation>just it</implementation> <videourl>let's see it</videourl> </exercises> </group> <group id = "3" name = "group3"> <exercises id = "6" name = "exercise6"> <implementation>just it</implementation> <videourl>let's see it</videourl> </exercises> </group> </fitness>

i need info exercises within 1 group. problem can't info exercises in 1 group, can info exercises don't need it.

my code:

public void parsefile(inputstream file) throws exception { // standart declaration dom parser documentbuilderfactory dbfactory = documentbuilderfactory.newinstance(); documentbuilder dbuilder = dbfactory.newdocumentbuilder(); document doc = dbuilder.parse(file); doc.getdocumentelement().normalize(); nodelist grouping = doc.getelementsbytagname("group"); (int temp = 0; temp < group.getlength(); temp++) { system.out.println("----------------------------"); node groupnode = group.item(temp); element groupelement = (element) groupnode; //adding grouping name db addtomusclegroupdb(groupelement.getattribute("name")); //fixme should take exercises within current grouping // take exercises string musclegroupid = groupelement.getattribute("id"); nodelist exercises = doc.getelementsbytagname("exercises"); (int count = 0; count < exercises.getlength(); count++) { node exercisenode = exercises.item(count); element eelement = (element) exercisenode; //adding exercises db addtoexercisesforgroupdb(musclegroupid, eelement.getattribute("name")); system.out.println("exercise :" + eelement.getattribute("name") + ", id:"); //adding individual exercise db string implementation = eelement.getelementsbytagname("implementation").item(0).gettextcontent(); string videourl = eelement.getelementsbytagname("videourl").item(0).gettextcontent(); string exerciseid = eelement.getattribute("id"); addtoindividualexercisedb(implementation, exerciseid, videourl); } } } }

the output is:

1 exercise :exercise1, id:1 exercise :exercise5, id:1 exercise :exercise6, id:1 ---------------------------- 2 exercise :exercise1, id:2 exercise :exercise5, id:2 exercise :exercise6, id:2 ---------------------------- 3 exercise :exercise1, id:3 exercise :exercise5, id:3 exercise :exercise6, id:3

but need:

1 exercise :exercise1, id:1 ---------------------------- 2 exercise :exercise5, id:2 ---------------------------- 3 exercise :exercise6, id:3

instead of nodelist exercises = doc.getelementsbytagname("exercises");, should utilize nodelist exercises = groupelement.getelementsbytagname("exercises");.

that way, retrieve <exercices> within <group>.

java xml domparser

Comments

Popular posts from this blog

java - How to set log4j.defaultInitOverride property to false in jboss server 6 -

c - GStreamer 1.0 1.4.5 RTSP Example Server sends 503 Service unavailable -

Using ajax with sonata admin list view pagination -