motivasi:
Fungsi kueri adalah modul fungsional yang paling umum dan umum digunakan yang pernah kami lihat di situs web. Di masa lalu, permintaan informasi terhubung ke database, dan setiap klik memerlukan dukungan database backend. Namun, dalam banyak kasus, pengguna seringkali hanya mengoperasikan bagian tertentu dari data, yang tidak hanya menambah beban pada server, namun juga sangat mempengaruhi kecepatan penelusuran pengguna.
Dalam hal ini, kita perlu meneruskan bagian tertentu dari data yang dibutuhkan pengguna ke klien dalam bentuk XML, sehingga pengguna dapat dengan mudah mengoperasikan data tersebut. Ini tidak hanya memudahkan pengguna, tetapi juga mengurangi beban pada database server. Mengapa tidak! Dan fungsi ini dapat diterapkan ke banyak modul lainnya, sehingga fungsi kueri dinamis ini telah ditambahkan.
Bahan:
Kueri dinamis volume XML memiliki dua file: search.xml dan search.xsl
.
Filter data tanpa menyegarkan halaman, secara efektif meningkatkan fungsi kueri data.
Memengaruhi:
Telusuri di sini
Kode:
pencarian.xml
<?xml versi="1.0" pengkodean="gb2312" ?>
<?xml-stylesheet type="text/xsl" href="search.xsl" ?>
<Ide Biru>
<tim>
<blue_ID>1</blue_ID>
<blue_name>Berlayar</blue_name>
<blue_text>Permintaan sederhana</blue_text>
<blue_time>2002-1-11 17:35:33</blue_time>
<blue_class>Topik XML</blue_class>
</tim>
<tim>
<blue_ID>2</blue_ID>
<blue_name>burung terbang</blue_name>
<blue_text>Menikahimu akan menyakitimu</blue_text>
<blue_time>2001-09-06 12:45:51</blue_time>
<blue_class>Esensi Irigasi</blue_class>
</tim>
<tim>
<blue_ID>3</blue_ID>
<blue_name>Kao Zi</blue_name>
<blue_text>Penerapan ekspresi reguler di forum UBB</blue_text>
<blue_time>23-11-2001 21:02:16</blue_time>
<blue_class>Esensi Pemrograman Web</blue_class>
</tim>
<tim>
<blue_ID>4</blue_ID>
<blue_name>Tayilang</blue_name>
<blue_text>Panduan lengkap pesta kemudi klasik akhir tahun v0.1</blue_text>
<blue_time>2000-12-08 10:22:48</blue_time>
<blue_class>Area irigasi forum</blue_class>
</tim>
<tim>
<blue_ID>5</blue_ID>
<nama_biru>mmkk</nama_biru>
<blue_text>Ringkasan pesan kesalahan Asp</blue_text>
<blue_time>2001-10-13 16:39:05</blue_time>
<blue_class>javascript</blue_class>
</tim>
</Ide Biru>
pencarian.xsl
<?xml versi="1.0" pengkodean="gb2312" ?>
<xsl:stylesheet xmlns:xsl=" http://www.w3.org/TR/WD-xsl ">
<xsl:templat pertandingan="/">
<html>
<kepala>
<title>Tips Praktis XML (2): Kueri Dinamis</title>
<gaya>
badan,Ide Biru,tim,ID_biru,nama_biru,teks_biru,waktu_biru,kelas_biru{ font: 12px "宋体", "Arial", "Times New Roman"; }
tabel { ukuran font: 12px; batas: 0px ganda; warna batas: #99CC99 #99CC99 #CCCCCC #CCCCCC;
span { ukuran font: 12 piksel; warna: merah }
</gaya>
<skrip>
teks pencarian fungsi(x)
{
stylesheet=dokumen.XSLDocument;
sumber=dokumen.XMLDokumen;
sortField=document.XSLDocument.selectNodes(" //@select ");
jika (x!="")
{
sortField[1].value="tim[blue_ID='"+x+"']";
Layer1.innerHTML=source.documentElement.transformNode(stylesheet);
}
else {alert("Silakan masukkan kriteria filter!");}
}
</skrip>
</kepala>
<tubuh>
<p align="center"><span>Tips Praktis Volume XML (2): Kueri Dinamis</span></p>
<div id="Layer1" name="Layer1">
<xsl:apply-template pilih="BlueIdea" />
</div>
<ukuran jam = "1" lebar = "500" />
<tabel align="center" cellpadding="0" Cellspacing="0" border="0" >
<tr>
<td>
<span>Silakan masukkan kriteria filter: </span>
blue_ID= <input type="text" name="searchtext" size="1" maxlength="1" />
<input type="button" class="button" onClick="searchtext(document.all.searchtext.value)" value="Search" name="button" />
</td>
</tr>
</tabel>
</tubuh>
</html>
</xsl:templat>
<xsl:templat pertandingan="Ide Biru">
<tabel lebar = "500" border = "1" align = "center" cellpadding = "1" Cellspacing = "1" bordercolordark = "#ffffff" bordercolorlight = "#ADAAAD">
<tr bgcolor="#FFCC99" align="tengah">
<td>Nomor</td>
<td>Nama</td>
<td>Tema</td>
<td>Waktu publikasi</td>
<td>Klasifikasi</td>
</tr>
<xsl:apply-templates select="team" order-by="blue_ID"/>
</tabel>
</xsl:templat>
<xsl:templat pertandingan="tim">
<tr menyelaraskan="tengah">
<xsl: apply-template pilih = "blue_ID" />
<xsl: apply-template pilih = "nama_biru" />
<xsl:apply-template pilih="blue_text" />
<xsl: apply-template pilih = "blue_time" />
<xsl:template penerapan pilih="kelas_biru" />
</tr>
</xsl:templat>
<xsl:templat pertandingan="blue_ID">
<td bgcolor="#eeeeee">
<xsl:nilai-dari />
</td>
</xsl:templat>
<xsl:templat pertandingan="nama_biru">
<td>
<xsl:nilai-dari />
</td>
</xsl:templat>
<xsl:templat pertandingan="blue_text">
<td>
<xsl:nilai-dari />
</td>
</xsl:templat>
<xsl:templat pertandingan="blue_time">
<td>
<xsl:nilai-dari />
</td>
</xsl:templat>
<xsl:templat pertandingan="kelas_biru">
<td>
<xsl:nilai-dari />
</td>
</xsl:templat>
</xsl:lembar gaya>
menjelaskan:
1) search.xml adalah file data, saya yakin semua orang tidak akan mengalami masalah.
2) search.xsl adalah file berformat, ada beberapa hal yang perlu diperhatikan.
(1) Dalam naskah:
sortField=document.XSLDocument.selectNodes(" //@select ");
Fungsinya adalah : mencari semua node dengan atribut select. Inilah yang saya katakan dalam penyortiran dinamis
sortField=document.XSLDocument.selectSingleNode(" //@order-by ");
Ada sesuatu yang berbeda. Mohon diperhatikan perbedaan kecil ini dan fungsinya masing-masing.
sortField[1].value="tim[blue_ID='"+x+"']";
Oleh karena itu sortField[1] adalah node kedua yang ditemukan, dan node terkaitnya adalah
<xsl:apply-templates select="team" order-by="blue_ID"/>
Parameter x adalah nilai yang dimasukkan dalam kotak teks.
Kami mengubah kondisi pencarian select="team" menjadi select="team[blue_ID='x']"
Fungsinya untuk menambahkan kondisi penilaian, dan hanya data XML yang nilai blue_IDnya sama dengan x yang akan ditampilkan.
Tentu saja, Anda dapat memperkaya kondisi penilaian. Penilaian sederhana yang saya buat di sini adalah untuk memudahkan semua orang memahaminya.
Terakhir, konten baru yang diurutkan ditampilkan dengan menampilkan ulang nilai innerHTML Layer1.
(2) Dalam teks:
pilih = "tim"
Dalam kasus saya, ini sortField[1], tetapi itu mungkin berubah seiring berjalannya waktu.
Maka Anda harus menghitung secara akurat dan tidak membuat kesalahan, jika tidak, Anda akan mencari perusahaan lain!
Saya memberikan metode yang umum digunakan: dalam kode, Anda dapat menggunakan loop untuk menentukan apakah itu node yang Anda perlukan.
Satu hal lagi:
XML memiliki persyaratan kasus yang sangat ketat. Jadi kalau tulisanmu tidak terstandar, nanti masuk angin!
nota bene:
Setelah semua orang memahami gagasan menyelesaikan pengurutan dinamis dan kueri dinamis, Anda akan menemukan bahwa metode penerapan kami sebenarnya sangat sederhana.
Cukup ubah nilai tertentu lalu tampilkan lagi.
Dalam fungsi paging dinamis, kami masih mengikuti ide ini.