want to read all elements of xml using jdom ?

Discussion in 'Java' started by vj, Sep 28, 2006.

  1. vj

    vj Guest

    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
    +91 99890 56485
     
    vj, Sep 28, 2006
    #1
    1. Advertising

  2. vj wrote:
    > 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().


    > 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.
    >
     
    Patricia Shanahan, Sep 28, 2006
    #2
    1. Advertising

  3. vj

    Guest

    vj wrote:
    > 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
    > +91 99890 56485


    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)
     
    , Sep 28, 2006
    #3
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Wendy S
    Replies:
    1
    Views:
    6,429
    Darren Davison
    Aug 5, 2003
  2. Bernd Oninger
    Replies:
    4
    Views:
    12,591
    GIMME
    Jun 21, 2004
  3. Tinker
    Replies:
    4
    Views:
    5,405
    Harry Bosch
    Oct 9, 2005
  4. Bernd Oninger
    Replies:
    3
    Views:
    2,913
    GIMME
    Jun 21, 2004
  5. cyberco
    Replies:
    2
    Views:
    1,317
    Roedy Green
    Nov 7, 2007
Loading...

Share This Page