package test.xindiced;
import org.xmldb.api.base.*;
import org.xmldb.api.modules.*;
import org.xmldb.api.*;
public class XUpdate {
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:///db/edyâ€�);
String xpath = “//pasien[nomorinduk=1518989]/nama”;
String data = “Edy Winarno”;
String xupdate=”" +
“” + data + “” +
“”;
XUpdateQueryService service =
(XUpdateQueryService) col.getService(“XUpdateQueryService”, “1.0″);
service.update(xupdate);
} catch (XMLDBException e) {
System.err.println(“XML:DB Exception occured ” + e.errorCode + ” ” +
e.getMessage());
} finally {
if (col != null) {
col.close();
}
}
}
}
Perbedaan program ini dengan program Java yang menggunakan query dengan XPath, adalah service yang di-instansiasi. Jika yang menggunakan XPath service adalah bertipe XPathQueryService, maka disini service bertipe XUpdateQueryService, seperti ditunjukkan pada potongan program ini:
…
XUpdateQueryService service =
(XUpdateQueryService)
col.getService(“XUpdateQueryService”, “1.0″);
service.update(xupdate);
…
Adapun nilai dari variabel xupdate yang akan menentukan efek dari eksekusi servis tersebut, yang bisa bertipe INSERT, UPDATE ataupun DELETE.
1. Perintah INSERT.
Untuk menambah data pada dokumen XML, akan diperlihatkan data sebelum perintah INSERT ditambahkan, sebagaimana berikut ini:
D:\Program\xml-xindice-1.1\bin>xindice xpath -c /db/edy -q “//pasien”
trying to register database
Untuk menambahkan data baru, yaitu pasien dengan nomorinduk 1518989, maka dipergunakan perintah modifikasi XUpdate yang disimpan ke dalam file insert2.xml berikut ini:
(Perintah modifikasi XUpdate untuk INSERT)
Untuk mengeksekusi perintah dalam file insert.xml tersebut, dilakukan perintah konsol berikut ini:
Gambar 1. Eksekusi Perintah dalam file insert.xml
Hasil dari proses tersebut adalah penambahan data pasien baru dengan nomorinduk 1518990 berikut ini :
Gambar 2. Â Hasil Eksekusi Perintah XUpdate INSERT
Pada tampilan tersebut di atas, tampak bahwa data sudah bertambah dengan data baru yaitu pasien dengan nomor 1518990
Sumber : http://edywinarno.com/2009/12/modifikasi-dokumen-xml-dengan-xupdate-pada-xindice/
Tidak ada komentar:
Posting Komentar