Board index » jbuilder » jdom not able to read whole xml internal elements.

jdom not able to read whole xml internal elements.


2006-09-28 06:24:19 PM
jbuilder1
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.
--
Regards,
Vijendra Singh
 
 

Re:jdom not able to read whole xml internal elements.

You might consider using ROME at
https://rome.dev.java.net/
It gives you a single interface to most all versions of RSS and Atom..
John..
vj wrote:
Quote
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.

--
=============================================
TeamB are volunteer helpers. Please DO NOT REPLY VIA EMAIL!
Post all questions and replies to this newsgroup ONLY
For papers on DataExpress, Applets, JSP, and Web Development go to:
www.microps.com/mps/paperFAQ.html
====================================================
 

Re:jdom not able to read whole xml internal elements.

Hi,
I don't know anything about RSS, and I'm sure in the long term using what
John suggested is your best bet, but the following should do what you asked
which is to access the "items"
Element itemElements = root.getChild("channel").getChild("item");
List items = itemElements.getChildren();
Iterator itr2 = items.iterator();
while (itr2.hasNext())
{
Element item = (Element) itr2.next();
System.out.println(item.getName());
}
Arth
"John Moore (TeamB)" < XXXX@XXXXX.COM >wrote in message
Quote
You might consider using ROME at

https://rome.dev.java.net/

It gives you a single interface to most all versions of RSS and Atom..

John..


 

{smallsort}

Re:jdom not able to read whole xml internal elements.

Arthur Ore wrote:
Quote
Hi,

I don't know anything about RSS, and I'm sure in the long term using what
John suggested is your best bet,
Here is how whole access to the feed would look using ROME:
SyndFeedInput _sfi = new SyndFeedInput();
URL url = new URL("www.sonicweblog.com/pebble/main/rss.xml");
SyndFeed feed = _sfi.build(new XmlReader(url));
// Iterate through feed items
Iterator entryIter = feed.getEntries().iterator();
while (entryIter.hasNext()) {
SyndEntry entry = (SyndEntry) entryIter.next();
System.out.println(entry.getTitle():
SyndContent _description = entry.getDescription();
System.out.println(_description.getValue());
System.out.println(entry.getLink());
}
John..
--
=============================================
TeamB are volunteer helpers. Please DO NOT REPLY VIA EMAIL!
Post all questions and replies to this newsgroup ONLY
For papers on DataExpress, Applets, JSP, and Web Development go to:
www.microps.com/mps/paperFAQ.html
====================================================