Btw I assume your bean looks something like :
String getField1()
void setField1(String field1)
String getField2()
void setField2(String field2)
and a nice String toString() is always easy ;)
Mvgr,
Martin
On Tue, 2002-07-02 at 23:14, Martin van den Bemt wrote:
> Try this :
>
> TestBean bean = new TestBean();
> Digester digester = new Digester();
> digester.setValidating(false);
> digester.push(bean);
> digester.addObjectCreate("toplevel/element/");
> digester.addCallMethod("toplevel/element/field1", "setField1", 0);
> digester.addCallMethod("toplevel/element/field2", "setField2", 0);
> digester.parse (blah);
> and you have a nice bean (mind the ending / on addObjectCreate.
>
> Probably betwixt will serve a better needs for your needs and (can be)
> simpeler (check it out from cvs, and look at the testcases for
> examples..)
>
> Mvgr,
> Martin
>
>
> On Tue, 2002-07-02 at 22:46, Brad Jones wrote:
> > I am new to XML parsing (from an xml file to a Java object) and I'm trying
> > out Digester.
> > I'm having trouble figuring out how to use the digester to access the parsed
> > XML once i've run the digester.parse() method. FYI...The following examples
> > are just testing code for me to learn digester so things like Exception
> > handling are not fully written.
> >
> > Here's a very simple xml file that I"m parsing:
> >
> > <toplevel>
> > <element>
> > <field1>Value 1</field1>
> > <field2>Value 2</field2>
> > </element>
> > </toplevel>
> >
> > TestPropertyBean tpbean = new TestPropertyBean();
> >
> > java.io.FileInputStream fileInputStream = null;
> > Digester digester = new Digester();
> >
> > //Adding data structure to digester to be parsed
> > digester.push(tpbean);
> >
> > digester.setValidating(false);
> >
> > //Rules for parsing the xml file.
> > digester.addObjectCreate("toplevel/element",
> > "com.ibm.us.force.bean.property.TestPropertyBean");
> > digester.addCallMethod("toplevel/element/field1","setField1",1);
> > digester.addCallParam("toplevel/element/field1", 0);
> > digester.addCallMethod("toplevel/element/field2","setField2",1);
> > digester.addCallParam("toplevel/element/field2", 0);
> >
> > try {
> > fileInputStream = new java.io.FileInputStream(name);
> > } catch (java.io.FileNotFoundException fnfe) {
> > //asdf
> > }
> >
> > try {
> > Object data = digester.parse(fileInputStream);
> > TestPropertyBean tpbean2 = (TestPropertyBean)data;
> > fileInputStream.close();
> > } catch (org.xml.sax.SAXException se) {
> > //asdf
> > System.out.println(se.getMessage());
> > } catch (java.io.IOException ie) {
> > //asdf
> > }
> >
> > When the digester.parse() method is called, I can see the TestPropertyBean
> > setters being called and the values being set to the bean instance. My
> > problem is that I don't know how to get access to that data once it's been
> > parsed. I put break points in my setters on my bean and they are being
> > called so I know that the data is being parsed from the XML to the bean but
> > then I can't seem to get the "populated" object to return because when I
> > cast to a TestPropertyBean the values are equal to null not "value 1",
> > "value 2".
> > I think it's a problem with the rules that I've written but I can't seem to
> > figure out the correct combination.
> >
> > any suggestions would be greatly appreciated.
> >
> > Brad
> >
> >
> >
> > _________________________________________________________________
> > Chat with friends online, try MSN Messenger: http://messenger.msn.com
> >
> >
> > --
> > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
> >
> >
>
>
>
> --
> To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>
>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>