--- 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.

yes it is true to some extent becuase we can still
modify all the attributes in non leaf nodes. for
example to change all the "sid"s i am using the
following working code

  String xupd = "<xu:modifications version= \"1.0 \" "
+                 "xmlns:xu=
\"http://www.xmldb.org/xupdate\";> " +
 "<xu:update select= \"//students/student/@sid\">"+
           "781164</xu:update>"+
 "</xu:modifications >";

with the above code all the sid's are changed to
781164.

my question is when we can modify all the atributes, 
why not one specific attribute...? (I might be stupid
here).

sincerely 
laxma



> 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