want to read all elements of xml using jdom ?

V

vj

Hi,
I am unable to read my rss file's all chid elements
the structure of xml is like

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<channeltitle>fgdfg</channeltitle>
<channellink>dfgdf</channellink>
<channeldescription>gdfgdfg</channeldescription>
<item>
<item1>
<itemtitle1>gdfgdf</itemtitle1>
<itemlink1>gdfgdfgd</itemlink1>
<itemdescription1>gdfgdfg</itemdescription1>
</item1>
<item2>
<itemtitle2>fgdfg</itemtitle2>
<itemlink2>dfgdfg</itemlink2>
<itemdescription2>dfg</itemdescription2>
</item2>
</item>
</channel>
</rss>

here no of items can be any.
so the respective code is here.

import="org.jdom.*, org.jdom.input.*, org.jdom.output.*"
//main code
try {
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(new File("c:\\rsshandler.xml"));
XMLOutputter fmt = new XMLOutputter();
fmt.output(doc, System.out);
// Get the root element
Element root = doc.getRootElement();
root.getName();//rss
List servlets = root.getChildren("channel");//channel
Iterator itr = servlets.iterator();
while (itr.hasNext()) {
Element servlet = (Element) itr.next();
out.print("\t" + servlet.getChild("channeltitle")
..getText() +
" for " + servlet.getChild("channellink")
..getText()+
"and"+ servlet.getChild("channeldescription").getText());
}

} catch (Exception e) {
e.printStackTrace();
}
till here its ok. But
i am not able to read items. any one can do anything.
i tried with many other options but haven't got the exact structure.
 
P

Patricia Shanahan

vj said:
Hi,
I am unable to read my rss file's all chid elements
the structure of xml is like

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<channeltitle>fgdfg</channeltitle>
<channellink>dfgdf</channellink>
<channeldescription>gdfgdfg</channeldescription>
<item>
<item1>
<itemtitle1>gdfgdf</itemtitle1>
<itemlink1>gdfgdfgd</itemlink1>
<itemdescription1>gdfgdfg</itemdescription1>
</item1>
<item2>
<itemtitle2>fgdfg</itemtitle2>
<itemlink2>dfgdfg</itemlink2>
<itemdescription2>dfg</itemdescription2>
</item2>
</item>
</channel>
</rss>

I think you would have an easier time dealing with multiple items if you
had a single "item" element type with an attribute giving the item
number, if you need it.
here no of items can be any.
so the respective code is here.

import="org.jdom.*, org.jdom.input.*, org.jdom.output.*"
//main code
try {
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(new File("c:\\rsshandler.xml"));
XMLOutputter fmt = new XMLOutputter();
fmt.output(doc, System.out);
// Get the root element
Element root = doc.getRootElement();
root.getName();//rss
List servlets = root.getChildren("channel");//channel

This asks for children of the root with name "channel". Try asking for
all children, root.getChildren().
 
S

su_dang

vj said:
Hi,
I am unable to read my rss file's all chid elements
the structure of xml is like

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<channeltitle>fgdfg</channeltitle>
<channellink>dfgdf</channellink>
<channeldescription>gdfgdfg</channeldescription>
<item>
<item1>
<itemtitle1>gdfgdf</itemtitle1>
<itemlink1>gdfgdfgd</itemlink1>
<itemdescription1>gdfgdfg</itemdescription1>
</item1>
<item2>
<itemtitle2>fgdfg</itemtitle2>
<itemlink2>dfgdfg</itemlink2>
<itemdescription2>dfg</itemdescription2>
</item2>
</item>
</channel>
</rss>

here no of items can be any.
so the respective code is here.

import="org.jdom.*, org.jdom.input.*, org.jdom.output.*"
//main code
try {
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(new File("c:\\rsshandler.xml"));
XMLOutputter fmt = new XMLOutputter();
fmt.output(doc, System.out);
// Get the root element
Element root = doc.getRootElement();
root.getName();//rss
List servlets = root.getChildren("channel");//channel
Iterator itr = servlets.iterator();
while (itr.hasNext()) {
Element servlet = (Element) itr.next();
out.print("\t" + servlet.getChild("channeltitle")
.getText() +
" for " + servlet.getChild("channellink")
.getText()+
"and"+ servlet.getChild("channeldescription").getText());
}

} catch (Exception e) {
e.printStackTrace();
}
till here its ok. But
i am not able to read items. any one can do anything.
i tried with many other options but haven't got the exact structure.

Can you post the code which does not work. And please get rid of all
the out.print (they only make the program harder to read)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,190
Members
46,736
Latest member
zacharyharris

Latest Threads

Top