You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xindice-users@xml.apache.org by "Tan, Leong T" <lt...@essex.ac.uk> on 2004/03/25 18:33:17 UTC
How to specify the xupdate expression to update the following xml?
Hi,
I got the following problem:
I got a collection named cc432 inside: /db/cc432
Then inside cc432 collection, I got five xml files.
There are as follows:
1) 2001Exam
2) 2002Exam
3) 2003Exam
4) 2004Exam
5) 2005Exam
The 2001Exam xml file contains the following:
<exam>
<section id="A">
<question no="1" value="20">
<text>What is the largest planet in the solar system></text>
</question>
</section>
</exam>
I need to go inside 2001Exam xml file inside cc432 collection and change
the following:
Change "<question no="1" value="20">" to "<question no="1" value="70">"
How do I specify the xupdate query and how to I specify the xml file
"2001Exam"?
Please advice and give me the sample codes.
Thanks.
Regards,
longtai
Re: How to specify the xupdate expression to update the following xml?
Posted by kc...@gre.ac.uk.
If you are using Java, there's a method in XPathQueryService that allows you to
query a specific document in a collection: XPathQueryService.updateResource
(String docID, String query). The doc id in your case would be 2001Exam. As
for the actual query, I'm not an XUpdate man so I can't help here. Code
fragment below:
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:///db/cc432");
String update = "updatestring";
String docID = "2001Exam";
XUpdateQueryService service =
(XUpdateQueryService) col.getService("XUpdateQueryService", "1.0");
long count = service.updateResource(docID, update);
Quoting "Tan, Leong T" <lt...@essex.ac.uk>:
> Hi,
>
> I got the following problem:
>
> I got a collection named cc432 inside: /db/cc432
>
> Then inside cc432 collection, I got five xml files.
> There are as follows:
>
> 1) 2001Exam
> 2) 2002Exam
> 3) 2003Exam
> 4) 2004Exam
> 5) 2005Exam
>
> The 2001Exam xml file contains the following:
>
> <exam>
> <section id="A">
> <question no="1" value="20">
> <text>What is the largest planet in the solar system></text>
> </question>
> </section>
> </exam>
>
>
> I need to go inside 2001Exam xml file inside cc432 collection and change
>
> the following:
> Change "<question no="1" value="20">" to "<question no="1" value="70">"
>
> How do I specify the xupdate query and how to I specify the xml file
> "2001Exam"?
>
> Please advice and give me the sample codes.
>
> Thanks.
>
> Regards,
> longtai
>