Avatar billede simonvalter Praktikant
21. juni 2004 - 21:56 Der er 1 kommentar og
1 løsning

commons digester

Er der nogen der kan fortælle hvordan jeg mapper en date eller url på den rigtige måde med digesteren. Jeg har læst det et eller andet sted for lang tid siden men kan ikke finde det nu.

Her er hvad jeg har gang i.

      Digester digester = new Digester();

        Channel channel = null;
        // Create Channel Object
        digester.addObjectCreate("rss/channel", "com.uwyn.drone.modules.feedmanagement.rss.Channel");
        digester.addCallMethod("rss/channel/title", "setTitle", 0);
        digester.addCallMethod("rss/channel/link", "setLink", 0);
        digester.addCallMethod("rss/channel/description", "setDescription", 0);
        // Create Item Objects
        digester.addObjectCreate("rss/channel/item", "com.uwyn.drone.modules.feedmanagement.rss.Item");
        digester.addCallMethod("rss/channel/item/title", "setTitle", 0);
        digester.addCallMethod("rss/channel/item/link", "setLink", 0);
        digester.addCallMethod("rss/channel/item/description", "setDescription", 0);
        digester.addCallMethod("rss/channel/item/guid", "setGuid", 0);
        //---Her skal jeg have indsat date fra rss/channel/item/pubDate ---
       
        // Add Items to Channel
        digester.addSetNext("rss/channel/item", "addItem", "com.uwyn.drone.modules.feedmanagement.rss.Item");
       
       
       
       
       
    private Date parseDate(String thedate)
    {
        Locale locale = Locale.ENGLISH;
        DateFormat formatter = new SimpleDateFormat("EEE, dd MMM yy HH:mm:ss z", locale);
        Date date = null;
        try
        {
            date = (Date) formatter.parse(thedate);
        }
        catch (ParseException ex)
        {
            ex.printStackTrace();
        }
        return date;
    }
Avatar billede simonvalter Praktikant
21. juni 2004 - 22:15 #1
Nej det er vist ikke længe siden tror bare jeg har haft for meget at tænke på, på det sidste :)
http://www.javaranch.com/journal/200406/Journal200406.jsp#a2
Avatar billede simonvalter Praktikant
21. juni 2004 - 22:58 #2
koden>

package com.uwyn.drone.modules.feedmanagement.rss;

import java.io.*;
import java.util.*;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;
import org.apache.commons.digester.*;

public class TestDigester {
    private Digester digester;

    public TestDigester() {
    }

    public void run() {
        configureConverter();
        digester = new Digester();
        Channel channel = null;
        digester.setValidating(false);
        digester.push(new Channel());
        addRules();
        try {
            channel = (Channel)digester.parse("http://www.theserverside.com/rss/theserverside-rss2.xml");
        } catch (Exception e) {
            e.printStackTrace();
        }
      Iterator i = channel.getItems().iterator();
      while(i.hasNext()){
          Item item = (Item) i.next();
          System.out.println(item.getPubDate());
      }
    }

    private void addRules() {
        digester.addBeanPropertySetter("rss/channel/title");
        digester.addBeanPropertySetter("rss/channel/link");
        digester.addBeanPropertySetter("rss/channel/description");
   
        digester.addObjectCreate("rss/channel/item", "com.uwyn.drone.modules.feedmanagement.rss.Item");
        digester.addBeanPropertySetter("rss/channel/item/title");
        digester.addBeanPropertySetter("rss/channel/item/link");
        digester.addBeanPropertySetter("rss/channel/item/description");
        digester.addBeanPropertySetter("rss/channel/item/guid");
        digester.addBeanPropertySetter("rss/channel/item/pubDate");
        digester.addSetNext("rss/channel/item", "addItem", "com.uwyn.drone.modules.feedmanagement.rss.Item");
       
    }

    private void configureConverter() {
        String pattern = "EEE, dd MMM yy HH:mm:ss z";
        Locale locale = Locale.ENGLISH;
        DateLocaleConverter converter = new DateLocaleConverter(locale, pattern);
        converter.setLenient(true);
        ConvertUtils.register(converter, java.util.Date.class);
    }

    public static void main(String[] args) {
        TestDigester td = new TestDigester();
        td.run();
    }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester