There is a tutorial at:

http://www.w3schools.com/xpath/default.asp

It looked pretty good and I am going to check it out myself when I have more
time.

Good Luck,
Lisa

----- Original Message -----
From: "johan bos" <[EMAIL PROTECTED]>
To: <xindice-users@xml.apache.org>
Sent: Tuesday, August 16, 2005 8:18 AM
Subject: Re: Problem to Xquery a document from xindice collection


> Thanks, I know my problem is the query format
> Can anyone drive me to a good tutorial of XPATH query
>
> here the different query I tried:
>
> System.out.println("ADDING MESSAGE FROM PATH & NAME");
> MessageDB.addDocument(mailDirectory +
> "dariusjbosSatAug13235020BST2005.xml");
>
> //DOESN'T WORK (But it s fine, I suppose KEY ID is better as the result
from
> any query is the KEY.
> System.out.println("RETRIEVE MESSAGE FROM NAME");
> MessageDB.retrieveDocument("dariusjbosSatAug13235020BST2005.xml");
>
> //WORKS BECAUSE it exists
> System.out.println("RETRIEVE MESSAGE FROM KEY");
> MessageDB.retrieveDocument("0601a7c0664aa59900000105bf073edf");
>
> // WORKS TOO, OUTPUT is a list of KEY Document
> System.out.println("COUNT MESSAGE FROM DB/MAIL");
> MessageDB.queryCollection("count(//Message)");
>
> //WORKS, OUTPUT is a list of KEY Document where dariusjbos appears
> System.out.println("QUERY MESSAGE WITH DARIUSJBOS AS FROM");
> MessageDB.queryCollection("/from/Address/name='dariusjbos'");
>
> //DOESN'T Return ANything but at least no error from the query format
> System.out.println("QUERY MESSAGE WITH CONTENT TYPE TEXT");
> MessageDB.queryCollection("/[EMAIL PROTECTED]'text/plain']");
>
> //DOESN'T Return ANything but at least no error from the query format
> System.out.println("QUERY MESSAGE WITH [EMAIL PROTECTED] AS FROM");
>
MessageDB.queryCollection("/from/Address[adrs='mailto:[EMAIL PROTECTED]']/
text()");
>
> //DOESN'T WORK and ERROR for the query
> System.out.println("QUERY STRING MESSAGE WITH CONTENT TYPE TEXT");
> MessageDB.queryCollection("string(/[EMAIL PROTECTED]'text/plain']");
>
> //DOESN'T Return ANything but at least no error from the query format
> System.out.println("QUERY MESSAGE WITH DARIUSJBOS AS FROM v2");
> MessageDB.queryCollection("/from/Address/name[. ='dariusjbos']");
>
> So, for summary, can anyone as a good tuto reference website for xpath
query
> because i tried some, and most of the example doesn't fit (like the one
with
> [. =dariusjbos])
>
> What I want, is query adrs and the date from my xml, I suppose it will
> return a list of Key Document from Xindice DB and I have to manage from
> these Key to retrieve the full document
>
> Is there any way to only retrieve part of the XML queried?
> It s a mail application so from all the mail stored in Xindice, I want to
> create some sort of listing of message
>
> Thanks in advance
>
> <BLOCKQUOTE style='PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT:
#A0C6E5
> 2px solid; MARGIN-RIGHT: 0px'><font
> style='FONT-SIZE:11px;FONT-FAMILY:tahoma,sans-serif'><hr color=#A0C6E5
> size=1>
> From:  <i>&quot;Lisa McCabe&quot;
> &lt;[EMAIL PROTECTED]&gt;</i><br>Reply-To:
> <i>xindice-users@xml.apache.org</i><br>To:
> <i>&lt;xindice-users@xml.apache.org&gt;</i><br>Subject:  <i>Re: Problem to
> Xquery a document from xindice collection</i><br>Date:  <i>Mon, 15 Aug
2005
> 20:56:51 -0400</i><br>MIME-Version:  <i>1.0</i><br>Received:  <i>from
> mail.apache.org ([209.237.227.199]) by MC8-F24.hotmail.com with Microsoft
> SMTPSVC(6.0.3790.211); Mon, 15 Aug 2005 17:57:11 -0700</i><br>Received:
> <i>(qmail 60799 invoked by uid 500); 16 Aug 2005 00:57:10
> -0000</i><br>Received:  <i>(qmail 60786 invoked by uid 99); 16 Aug 2005
> 00:57:10 -0000</i><br>Received:  <i>from asf.osuosl.org (HELO
> asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP;
> Mon, 15 Aug 2005 17:57:10 -0700</i><br>Received:  <i>pass (asf.osuosl.org:
> local policy)</i><br>Received:  <i>from [24.248.88.131] (HELO
> mail.myeastern.com) (24.248.88.131) by apache.org (qpsmtpd/0.29) with
ESMTP;
> Mon, 15 Aug 2005 17:57:29 -0700</i><br>Received:  <i>from MegaCool
> (unverified [66.212.211.142]) by myeastern-dot-com (MyEastern Mail -
> www.myeastern.com) with ESMTP id 24666502 for
> &lt;xindice-users@xml.apache.org&gt;; Mon, 15 Aug 2005 20:57:01
> -0400</i><br>Hi,<br><br>Did you try the same query using the commandline
> Xindice to see if your<br>xpath query works? That helps me in firguring
out
> my problems. I am doing<br>the same type of stuff and compared our code -
> yours is the same as mine so<br>it should work.<br><br>-Lisa
> McCabe<br><br>PS Good luck meeting your deadline!<br><br>----- Original
> Message -----<br>From: &quot;johan bos&quot;
> &lt;[EMAIL PROTECTED]&gt;<br>To:
> &lt;xindice-users@xml.apache.org&gt;<br>Sent: Monday, August 15, 2005 1:57
> PM<br>Subject: Problem to Xquery a document from xindice
> collection<br><br><br> &gt;<br> &gt; Hello Everyone,<br> &gt;<br> &gt;
Here
> my problem,<br> &gt; I can connect and create a collection (mail)  in
> xindice 1.1 (from<br> &gt; within my<br> &gt; servlet (tomcat 5))<br> &gt;
I
> can add document to this collection (the ugly browser let me see them)<br>
> &gt;<br> &gt; but when i try to make a query using the example function
for
> quering<br> &gt; xindice, i got an error such as below: (some of the
message
> are from my<br> &gt; debug)<br> &gt;<br> &gt;<br> &gt; trying to register
> database<br> &gt; Database xmldb:xindice://localhost:8080/db is
> connected<br> &gt; Collection xmldb:xindice://localhost:8080/db is
> connected<br> &gt; Collection mail already created<br> &gt;
> org.xmldb.api.base.XMLDBException: org.apache.xmlrpc.XmlRpcException:<br>
> &gt; Error<br> &gt; Compiling XPath Expression: Une étape d'emplacement
> était attendue après<br> &gt; le<br> &gt; jeton ''/'' ou ''//''.<br> &gt;
> at<br>
>
&gt;<br>org.apache.xindice.client.xmldb.xmlrpc.CollectionImpl.runRemoteComma
nd(Colle<br>ctionImpl.java:119)<br>
> &gt; at<br>
>
&gt;<br>org.apache.xindice.client.xmldb.xmlrpc.CollectionImpl.query(Collecti
onImpl.j<br>ava:515)<br>
> &gt; at<br>
>
&gt;<br>org.apache.xindice.client.xmldb.XindiceCollection.query(XindiceColle
ction.ja<br>va:259)<br>
> &gt; at<br>
>
&gt;<br>org.apache.xindice.client.xmldb.services.QueryService.query(QuerySer
vice.jav<br>a:90)<br>
> &gt; at jmms.MessageDB.queryCollection(MessageDB.java:163)<br> &gt; at
> jmms.JMMSServlet.doMessageToDB(JMMSServlet.java:1009)<br> &gt; at
> jmms.JMMSServlet.doPost(JMMSServlet.java:342)<br> &gt; at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:709)<br> &gt; at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)<br> &gt;
at<br>
>
&gt;<br>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(App
lication<br>FilterChain.java:252)<br>
> &gt; at<br>
>
&gt;<br>org.apache.catalina.core.ApplicationFilterChain.doFilter(Application
FilterCh<br>ain.java:173)<br>
> &gt; at<br>
>
&gt;<br>org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapper
Valve.ja<br>va:213)<br>
> &gt; at<br>
>
&gt;<br>org.apache.catalina.core.StandardContextValve.invoke(StandardContext
Valve.ja<br>va:178)<br>
> &gt; at<br>
>
&gt;<br>org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.
java:126<br>)<br>
> &gt; at<br>
>
&gt;<br>org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.
java:105<br>)<br>
> &gt; at<br>
>
&gt;<br>org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVa
lve.java<br>:107)<br>
> &gt; at<br>
>
&gt;<br>org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.ja
va:148)<br>
> &gt; at<br> &gt;
>
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)<b
r>
> &gt; at<br>
>
&gt;<br>org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proc
essConne<br>ction(Http11Protocol.java:744)<br>
> &gt; at<br>
>
&gt;<br>org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndp
oint.jav<br>a:527)<br>
> &gt; at<br>
>
&gt;<br>org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFo
llowerWo<br>rkerThread.java:80)<br>
> &gt; at<br>
>
&gt;<br>org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(Thread
Pool.jav<br>a:684)<br>
> &gt; at java.lang.Thread.run(Unknown Source)<br> &gt; Query
> /mail/Message/from/Address/[name='dariusjbos'] return an error<br> &gt;
> XML:DB Exception occured 1 org.apache.xmlrpc.XmlRpcException: Error<br>
&gt;
> Compiling XPath Expression: Une étape d'emplacement était attendue
après<br>
> &gt; le<br> &gt; jeton ''/'' ou ''//''.<br> &gt;<br> &gt; the xml document
i
> try to query look like this:<br> &gt; &lt;?xml version=&quot;1.0&quot;
> encoding=&quot;UTF-8&quot;?&gt;<br> &gt; &lt;Message
> xmlns=&quot;URN:ietf:params:email-xml:&quot;<br> &gt;
> rfc822=&quot;URN:ietf:params:rfc822:&quot;&gt;<br> &gt;
&lt;date&gt;Mon
> Aug 15 19:03:47 CEST 2005&lt;/date&gt;<br> &gt;     &lt;from&gt;<br> &gt;
>       &lt;Address&gt;<br> &gt;
> &lt;adrs&gt;mailto:[EMAIL PROTECTED]&lt;/adrs&gt;<br> &gt;
> &lt;name&gt;dariusjbos&lt;/name&gt;<br> &gt;         &lt;/Address&gt;<br>
> &gt;     &lt;/from&gt;<br> &gt; &lt;/Message&gt;<br> &gt;<br> &gt; find
> after the function i use to query the mail collection under db:<br>
&gt;<br>
> &gt; public static void queryCollection()throws Exception {<br> &gt;
> Collection col = null;<br> &gt;         try {<br> &gt;            String
> driver =<br> &gt;
> &quot;org.apache.xindice.client.xmldb.DatabaseImpl&quot;;<br> &gt;
>   Class c = Class.forName(driver);<br> &gt;<br> &gt;            Database
> database = (Database) c.newInstance();<br> &gt;
> DatabaseManager.registerDatabase(database);<br> &gt;<br> &gt;
col
> =<br> &gt;
>
DatabaseManager.getCollection(&quot;xmldb:xindice://localhost:8080/db/mail&q
uot;);<br>
> &gt;<br> &gt;            String xpath =
> &quot;//Message/from/Address/[name='dariusjbos']&quot;;<br> &gt;
> XPathQueryService service =<br> &gt;               (XPathQueryService)
> col.getService(&quot;XPathQueryService&quot;,<br> &gt;
&quot;1.0&quot;);<br>
> &gt;            ResourceSet resultSet = service.query(xpath);<br> &gt;
>       ResourceIterator results = resultSet.getIterator();<br> &gt;
>   while (results.hasMoreResources()) {<br> &gt;               Resource res
=
> results.nextResource();<br> &gt;               System.out.println((String)
> res.getContent());<br> &gt;            }<br> &gt;         }<br> &gt;
> catch (XMLDBException e) {<br> &gt;
> System.err.println(&quot;XML:DB Exception occurred &quot; +
e.errorCode<br>
> &gt; +<br> &gt; &quot;&quot; + e.getMessage());<br> &gt;         }<br>
&gt;
>         finally {<br> &gt;            if (col != null) {<br> &gt;
>     col.close();<br> &gt;            }<br> &gt;         }<br> &gt; }<br>
> &gt;<br> &gt; please I really need to pass this problem (deadline in 3
> days)<br> &gt;<br> &gt; thanks in advance<br> &gt;<br>
> &gt;<br><br></font></BLOCKQUOTE>
>
>

Reply via email to