Hello Laxma,

Ok now I've got my coffee I can see what you want. 

Try this:

<xupdate:modifications version="1.0"
       xmlns:xupdate="http://www.xmldb.org/xupdate";>

   <xupdate:update select="//students/[EMAIL PROTECTED]'781111']/@sid"
>781164</xupdate:update>
</xupdate:modifications> 

The xpath //students/[EMAIL PROTECTED]'781111'] will give you the whole element
student als the xpath //students/[EMAIL PROTECTED]'781111'[EMAIL PROTECTED] 
will give only
the 
attribute sid

Wouter
 

> -----Original Message-----
> From: Laxma Reddy Dendi [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, July 20, 2004 9:19 AM
> To: xindice-users@xml.apache.org
> Subject: RE: Error executing XUpdate Query
> 
> Hi Wouter:
>    I went figured that i can delete the whole entry for 
> sid=781111 and then insert a new record of student with a new sid.
> 
>    i tried the following:
>      String xupd1 = "<xu:modifications version= \"1.0 \" " +
>                             "xmlns:xu=
> \"http://www.xmldb.org/xupdate\";> " +
>                "<xu:remove select=
> \"//students/[EMAIL PROTECTED]'781111']\"> </xu:remove >"
> +
>                "</xu:modifications >";
> 
> 
>               String xupd = "<xu:modifications version= \"1.0 \" "
> +
>                             "xmlns:xu=
> \"http://www.xmldb.org/xupdate\";> " +
>                "<xu:append select= \"//students\">"+
>                  "<student sid='781164'>"+
>                  "       <name>Laxma R Dendi</name>"+
>                  "       <degree>MS</degree>" +
>                  "       <major>Comuter Science</major>"+
>                  "</student> </xu:append>"+
>                "</xu:modifications >";
> 
> this works.
> 
> 
> but is there any other simple of doing it.
> 
> thanks for your reply.
> 
> sincerely
> laxma
> 
> --- Wouter de Vaal <[EMAIL PROTECTED]> wrote:
> > It's your XUpdate expression. The query /students/[EMAIL PROTECTED] = 
> > '781111'] gives the following xml:
> >  
> >    <student sid="781111">
> >       <name>Laxma R Dendi</name>
> >       <degree>M.S</degree>
> >       <major>Computer Science</major>
> >    </student>
> >  
> > But xupdate:update can only update leafnodes and in the above xml, 
> > student is not a leaf-node.
> > You could try a combination of xupdate:insert-after and 
> xupdate:remove 
> > statements.
> >  
> > However if you are trying to change the attribute sid you should 
> > probably do a combination of removing the attribute and 
> adding a new 
> > one. Check out the following link on examples how to do this
> >  
> >
> http://www.xmldatabases.org/projects/XUpdate-UseCases/
> >  
> >  
> > Wouter
> > 
> > 
> >   _____
> > 
> > From: Laxma Reddy Dendi
> > [mailto:[EMAIL PROTECTED]
> > Sent: Monday, July 19, 2004 10:39 PM
> > To: xindice-users@xml.apache.org
> > Subject: Error executing XUpdate Query
> > 
> > 
> > Hi All,
> >    I am getting error while trying to execute xupdate query:
> >  
> >    i am trying the following code:
> >  
> > import org.xmldb.api.base.*;
> > import org.xmldb.api.modules.*;
> > import org.xmldb.api.*;
> > public class StudentsXupdate {
> >    public static void main(String[] args) throws Exception {
> >       Collection col = null;
> >       try {
> >          String driver =
> > "org.apache.xindice.client.xmldb.DatabaseImpl";
> >          Class c = Class.forName(driver);
> >          Database database = (Database) c.newInstance();
> >          DatabaseManager.registerDatabase(database);
> >          col =
> >
> DatabaseManager.getCollection("xmldb:xindice://localhost:8080/
> db/studentsdb"
> > );
> >             String xupd = "<xupdate:modifications 
> version=\"1.0\"" + "
> > xmlns:xupdate=\"http://www.xmldb.org/xupdate\";>";
> >             xupd+="   <xupdate:update
> > select=\"/students/[EMAIL PROTECTED] =
> > '781111']\">" ;
> >    xupd+= "781114" + "   </xupdate:update>" +
> > "</xupdate:modifications>";
> > 
> >             XUpdateQueryService service =
> >                (XUpdateQueryService)
> > col.getService("XUpdateQueryService",
> > "1.0");
> >             long num=service.update(xupd);
> >             System.out.println("number is: "+num);
> >       }
> >       catch (XMLDBException e) {
> >          System.err.println("XML:DB Exception occurred " + 
> > e.errorCode);
> >       }
> >       finally {
> >           if (col != null) { col.close();}
> >       }
> >    }
> > }
> >  
> > here is my document:
> > C:\>xindice rd -c
> > xmldb:xindice://localhost:8080/db/studentsdb -n students trying to 
> > register database <?xml version="1.0"?> <students>
> >    <student sid="781111">
> >       <name>Laxma R Dendi</name>
> >       <degree>M.S</degree>
> >       <major>Computer Science</major>
> >    </student>
> >    <student sid="999999">
> >       <name>Guest</name>
> >       <degree>M.S</degree>
> >       <major>Computer Science</major>
> >    </student>
> > </students>
> >  
> >  
> > i am getting the following error:
> >  
> > C:\>java StudentsXupdate
> > trying to register database
> > org.xmldb.api.base.XMLDBException:
> > org.apache.xmlrpc.XmlRpcException: Error exec uting XUpdate query
> >         at
> >
> org.apache.xindice.client.xmldb.xmlrpc.CollectionImpl.runRemoteComman
> > d(CollectionImpl.java:119)
> >         at
> >
> org.apache.xindice.client.xmldb.xmlrpc.CollectionImpl.query(Collectio
> > nImpl.java:515)
> >         at
> >
> org.apache.xindice.client.xmldb.XindiceCollection.query(XindiceCollec
> > tion.java:259)
> >         at
> >
> org.apache.xindice.client.xmldb.services.QueryService.query(QueryServ
> > ice.java:90)
> >         at
> >
> org.apache.xindice.client.xmldb.services.XUpdateQueryServiceImpl.upda
> > te(XUpdateQueryServiceImpl.java:81)
> >         at
> > StudentsXupdate.main(StudentsXupdate.java:25)
> > XML:DB Exception occurred 1
> >  
> > thanks in advance.
> >  
> > sincerely
> > Laxma
> >  
> > 
> > 
> > 
> >   _____
> > 
> > Do you Yahoo!?
> > Vote for the
> >
> <http://advision.webevents.yahoo.com/yahoo/votelifeengine/>
> > stars of Yahoo!'s next ad campaign!
> > 
> > 
> 
> 
> 
>       
>               
> __________________________________
> Do you Yahoo!?
> Vote for the stars of Yahoo!'s next ad campaign!
> http://advision.webevents.yahoo.com/yahoo/votelifeengine/
> 

Reply via email to