True, but the javadoc for selectObject says that I will either get a String, Number, Node, or List of Nodes. If there is only one item, why return the list?
Jim Jim Brain, [EMAIL PROTECTED] "Researching tomorrow's decisions today." (319) 369-2070 (work) SYSTEMS ARCHITECT, INDIVIDUAL ITS, LIFE INVESTORS INSURANCE COMPANY OF AMERICA -----Original Message----- From: James Strachan [mailto:[EMAIL PROTECTED]] Sent: Saturday, December 01, 2001 4:24 AM To: Brain, Jim; DOM4J Mailing List (E-mail) Subject: Re: [dom4j-user] Issue with dom4j 1.1 Looking at your XML document I only see one <threadsafe> element. So that's correct behaviour isn't it? James ----- Original Message ----- From: "Brain, Jim" <[EMAIL PROTECTED]> > I finally had time to try this out. > > I tried the code, and I wrote some of my own. I could have sworn that when > I used selectObject("//threadsafe"), I got an error saying "false was not a > List or Node" or something like that. But, I can't duplicate the error, in > either your test or my code. Sigh. > I'd say it must be me. If I ever do find it, I'll be sure to document the > issue. > > In the + side, I've been able to dispel two issue I thought I had with > dom4j. So, good for it. > > I did notice something in my work on this supposed issue: > > Doing a selectObject(//threadsafe) returns a List of Nodes, but there is > only 1 node in there. Why does it do that? > > > Code: > > import org.dom4j.*; > import org.dom4j.io.*; > import java.io.*; > import java.util.*; > > public class test { > public static void main(String args[]) { > try { > SAXReader r=new SAXReader(); > Document d=r.read(new FileInputStream("test.xml")); > Object o=d.selectObject("//threadsafe"); > if(o instanceof List) { > System.out.println("List"); > for(int i=0,size=((List)o).size();i<size;i++) { > Node n=((Node)((List)o).get(i)); > System.out.println("Item #" + i + ":" + n.getText() + "End"); > } > } > else if(o instanceof Node) { > System.out.println("Node"); > } > > } catch (Exception e) { > e.printStackTrace(); > } > } > } > > Jim Brain, [EMAIL PROTECTED] > "Researching tomorrow's decisions today." > (319) 369-2070 (work) > SYSTEMS ARCHITECT, INDIVIDUAL ITS, LIFE INVESTORS INSURANCE COMPANY OF > AMERICA > > -----Original Message----- > From: James Strachan [mailto:[EMAIL PROTECTED]] > Sent: Sunday, November 11, 2001 3:07 AM > To: Brain, Jim; DOM4J Mailing List (E-mail) > Subject: Re: [dom4j-user] Issue with dom4j 1.1 > > Hi Jim > > I've added your test case to CVS. The xml document is in > xml/test/jimBrain.xml and I've added a JUnit test case to demonstrate what I > think you're trying to do at > > dom4j/src/test/org/dom4j/xpath/TestSelectSingleNode.java > > From my testing it appears that dom4j 1.1 is working correctly for > selectSingleNode using your XML document. Is there a chance you're doing > something else differently? > > BTW you can find an Element and add a comment to it. e.g. > > Element server = (Element) document.selectSingleNode( > "/properties/server" ); > server.addComment( "this is a comment..." ); > > For example, could you modify the test case to try reproduce your problem? > The test case is available in the daily build as well as via CVS... > > James > ----- Original Message ----- > From: "Brain, Jim" <[EMAIL PROTECTED]> > To: "DOM4J Mailing List (E-mail)" <[EMAIL PROTECTED]> > Sent: Friday, November 09, 2001 10:58 PM > Subject: [dom4j-user] Issue with dom4j 1.1 > > > > A couple actually: > > > > I had some XML like this: > > > > <?xml version="1.0"?> > > <!-- THis is a comment --> > > > > <properties> > > <client> > > <threadsafe>false</threadsafe> > > <GUI-type>simple</GUI-type> > > </client> > > <server id="jimmy">Server Stuff here > > <db name="Jim"> > > <connection> > > <URL>http://www.digitalsymbiosis.net</URL> > > <name>jdcasey</name> > > <password>nothing</password> > > </connection> > > <connection> > > <URL>http://www.digitalsymbiosis.net</URL> > > <name>jdcasey</name> > > <password>nothing</password> > > </connection> > > This is a test. This should be the server/db property... > > Sure. > > </db> > > <connections> > > <limit>5</limit> > > <initial>1</initial> > > </connections> > > </server> > > </properties> > > > > When I grab the Document and do > > selectSingleNode("/properties/client/threadsafe"); I get an exception > that > > the item is not a node, I need to use getObject... Can someone tell me > what > > I am doing wrong? > > > > Also, is ther a way to add a comment to a Node? I see methods for > > document.addComment, but not ode.addComment. Did I miss something? > > > > Finally, I can't seem to get relative XPath exp to work. In the above, > > /properties/server gives Server Stuff here, but server or > properties/server > > (both in document.selectSingleNode() return null. > > > > Jim > > > > > > Jim Brain, [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > > "Researching tomorrow's decisions today." > > (319) 369-2070 (work) > > Systems Architect, Individual ITS, Life Investors Insurance Company of > > America > > > > > > _______________________________________________ > > dom4j-user mailing list > > [EMAIL PROTECTED] > > https://lists.sourceforge.net/lists/listinfo/dom4j-user > > > > > _________________________________________________________ > Do You Yahoo!? > Get your free @yahoo.com address at http://mail.yahoo.com > > _______________________________________________ > dom4j-user mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/dom4j-user > _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com _______________________________________________ dom4j-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dom4j-user
