Evan Kirkconnell
Wed, 06 Dec 2006 16:55:28 -0800
|http://www.w3.org/TR/xpath extract://para| selects all the |para| descendants of the document root and thus selects all |para| elements in the same document as the context node
take off the // --Evan Piz Pot wrote:
Hello all,I'm having a little bit of trouble understanding something basic and I have boiled it down to the code below. Also attached is a zip file containing all 3 files. ( The dom4j SMTP server does not seem to like zip attachments, so I have changed the extension to .zip.txt. Please change it back to .zip be able to deflate it )Why would an XPath search from a first level element (id=1) return all second level elements(id=2,4,6) and not just the children(id=2,4) of the node I'm searching from ?I'm pretty sure I've missed something, but I don't know what. Could someone take a couple of minutes and explain this to me?thanks in advance, PP -------------new.xml------- <?xml version="2.0" encoding="UTF-8"?> <root> <firstlevel id="1"> <secondlevel id="2"> <thirdlevel id="3"/> </secondlevel> <secondlevel id="4"/> </firstlevel> <firstlevel id="5"> <secondlevel id="6"/> </firstlevel> </root> ---------Main.java--------- import java.io.*; import java.util.*; import org.dom4j.*; import org.dom4j.io.SAXReader; public class Main { public Main() { } public static void main(String[] args) throws DocumentException{ Document mapdoc; SAXReader reader = new SAXReader(); File fMapFile = new File("src/new.xml"); mapdoc = reader.read(fMapFile); // throws org.dom4j.DocumentException List OuterList = mapdoc.selectNodes("//firstlevel"); System.out.println("Document:\n" + mapdoc.asXML() + "\n----------"); if(OuterList != null && !OuterList.isEmpty()){ for ( int i=0; i < OuterList.size(); i++ ) { Node firstlevel = (Node) OuterList.get(i);System.out.println("FirstLevel:i=" + i + ":\n" + firstlevel.asXML() + "\n----------");List InnerList = firstlevel.selectNodes("//secondlevel"); for ( int j=0; j < InnerList.size(); j++){ Element secondlevel = (Element) InnerList.get(j);System.out.println("SecondLevel:j=" + j + ":\n" + secondlevel.asXML() + "\n----------");System.out.println(secondlevel.attribute("id").getValue()); } } } } } ------------out.txt---------- Document: <?xml version="1.0" encoding="UTF-8"?> <root> <firstlevel id="1"> <secondlevel id="2"> <thirdlevel id="3"/> </secondlevel> <secondlevel id="4"/> </firstlevel> <firstlevel id="5"> <secondlevel id="6"/> </firstlevel> </root> ---------- FirstLevel:i=0: <firstlevel id="1"> <secondlevel id="2"> <thirdlevel id="3"/> </secondlevel> <secondlevel id="4"/> </firstlevel> ---------- SecondLevel:j=0: <secondlevel id="2"> <thirdlevel id="3"/> </secondlevel> ---------- 2 SecondLevel:j=1: <secondlevel id="4"/> ---------- 4 SecondLevel:j=2: <secondlevel id="6"/> ---------- 6 FirstLevel:i=1: <firstlevel id="5"> <secondlevel id="6"/> </firstlevel> ---------- SecondLevel:j=0: <secondlevel id="2"> <thirdlevel id="3"/> </secondlevel> ---------- 2 SecondLevel:j=1: <secondlevel id="4"/> ---------- 4 SecondLevel:j=2: <secondlevel id="6"/> ---------- 6 ------------------------------------------------------------------------ PK yÆìvj–À¥À€d`(ÐîàÚJFC–INÛ þï“ü%åÃEÇC¤PôKò¡l,+!5é!�QÄïóz®Z#ó�Bîã\”‹ËN£°ý|÷ƒ¦9•æ|>«êG†d,U 6)rø;Ÿ�±î·?¶$ŽšJ§Ú,�9”6z«%òýý/Hå^…]¬þ-Å“‚/"«KÊõê9£•FÁ{]'jmˆ2rU.²…;;ŒXWè©î©&è÷õ[+µ¶R7¸´¼Ð"êÙ¹<oâ7]uËñ+çã”=å“I+š žŸ�úha�è(<-¢èt,ƒmß /�…Ø»COÌr,.•0ÅrÛJv0‹fáÁôþ͉lGrÚ|XÍ æAh+ÿ™²Ú ¸$Ø»š©ëÛœ¾ÆÑüPK qÓµP²·ã²)ÊÏ/Ri™EÅ%9©e©9 ™)@åJv\ @`SœšœŸ—‚�0‚J€%K22‹�䌕ô¡ºô‘´á0ȤØFa/¦#Lq9‹^}ˆG qÓµP²·ª+ÊÏ/Ñi™EÅ%9©e©9 ™)@ [EMAIL PROTECTED] °)NMÎÏKAÈÁdÀ²%™EH’ÆJú0}úHq™eVn£�°‹SLq:Å«v}¨—tá€—Ë ¤Â¤Â*ÓÖÀjPùÙ�Á` ‡fAJ%÷ Ûb„n‘!6‹ ŽEÖg‚®Ï›>3}fh`ˆ%HŒåh ------------------------------------------------------------------------ ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV ------------------------------------------------------------------------ _______________________________________________ dom4j-user mailing list dom4j-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dom4j-user
------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________ dom4j-user mailing list dom4j-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dom4j-user