Motivation:
Die Abfragefunktion ist das häufigste und am häufigsten verwendete Funktionsmodul, das wir auf der Website gesehen haben. In der Vergangenheit waren Informationsabfragen mit der Datenbank verbunden und jeder Klick erforderte die Unterstützung der Backend-Datenbank. In vielen Fällen verarbeiten Benutzer jedoch häufig nur einen bestimmten Teil der Daten, was nicht nur die Belastung des Servers erhöht, sondern auch die Browsing-Geschwindigkeit des Benutzers erheblich beeinträchtigt.
In diesem Fall müssen wir einen bestimmten Teil der Daten, die der Benutzer benötigt, in Form von XML an den Client übergeben, damit der Benutzer diese Daten problemlos bearbeiten kann. Dies erleichtert nicht nur den Benutzern, sondern verringert auch die Belastung der Serverdatenbank. Warum nicht! Und diese Funktion kann auf viele andere Module angewendet werden, daher wurde diese dynamische Abfragefunktion hinzugefügt.
Material:
Die dynamische Abfrage des XML-Volumes besteht aus zwei Dateien: search.xml und search.xsl.
Die Funktionen sind:
Filtern Sie Daten, ohne die Seite zu aktualisieren, und verbessern Sie so effektiv die Datenabfragefunktion.
Wirkung:
Stöbern Sie hier
Code:
search.xml
<?xml version="1.0"kodierung="gb2312" ?>
<?xml-stylesheet type="text/xsl" href="search.xsl" ?>
<BlueIdea>
<Team>
<blue_ID>1</blue_ID>
<blue_name>Segelfliegen</blue_name>
<blue_text>Eine einfache Abfrage</blue_text>
<blue_time>2002-1-11 17:35:33</blue_time>
<blue_class>XML-Thema</blue_class>
</team>
<Team>
<blue_ID>2</blue_ID>
<blue_name>fliegender Vogel</blue_name>
<blue_text>Dich zu heiraten wird dir wehtun</blue_text>
<blue_time>2001-09-06 12:45:51</blue_time>
<blue_class>Bewässerungsessenz</blue_class>
</team>
<Team>
<blue_ID>3</blue_ID>
<blue_name>Kao Zi</blue_name>
<blue_text>Anwendung regulärer Ausdrücke im UBB-Forum</blue_text>
<blue_time>23.11.2001 21:02:16</blue_time>
<blue_class>Essenz der Webprogrammierung</blue_class>
</team>
<Team>
<blue_ID>4</blue_ID>
<blue_name>Tayilang</blue_name>
<blue_text>Jahresend-Klassiker-Lenkungsparty-Kompletthandbuch v0.1</blue_text>
<blue_time>2000-12-08 10:22:48</blue_time>
<blue_class>Forum-Bewässerungsgebiet</blue_class>
</team>
<Team>
<blue_ID>5</blue_ID>
<blue_name>mmkk</blue_name>
<blue_text>Zusammenfassung der Asp-Fehlermeldungen</blue_text>
<blue_time>2001-10-13 16:39:05</blue_time>
<blue_class>Javascript</blue_class>
</team>
</BlueIdea>
search.xsl
<?xml version="1.0"kodierung="gb2312" ?>
<xsl:stylesheet xmlns:xsl=" http://www.w3.org/TR/WD-xsl ">
<xsl:template match="/">
<html>
<Kopf>
<title>XML-Praxistipps (2): Dynamische Abfrage</title>
<Stil>
body,BlueIdea,team,blue_ID,blue_name,blue_text,blue_time,blue_class{ Schriftart: 12px "宋体", "Arial", "Times New Roman" }
Tabelle {Schriftgröße: 12px; Randfarbe: #99CC99 #99CC99 #CCCCCC #CCCCCC; bgcolor:#eeeee;
span { Schriftgröße: 12px; Farbe: rot }
</style>
<Skript>
Funktion Suchtext(x)
{
stylesheet=document.XSLDocument;
source=document.XMLDocument;
sortField=document.XSLDocument.selectNodes(" //@select ");
if (x!="")
{
sortField[1].value="team[blue_ID='"+x+"']";
Layer1.innerHTML=source.documentElement.transformNode(stylesheet);
}
else {alert("Bitte Filterkriterien eingeben!");}
}
</script>
</head>
<Körper>
<p align="center"><span>Praktische Tipps für XML-Volumes (2): Dynamische Abfrage</span></p>
<div id="Layer1" name="Layer1">
<xsl:apply-templates select="BlueIdea" />
</div>
<hr size="1" width="500" />
<table align="center" cellpadding="0" cellpacing="0" border="0" >
<tr>
<td>
<span>Bitte geben Sie Filterkriterien ein: </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>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="BlueIdea">
<table width="500" border="1" align="center" cellpadding="1" cellpacing="1" bordercolordark="#ffffff" bordercolorlight="#ADAAAD">
<tr bgcolor="#FFCC99" align="center">
<td>Nummer</td>
<td>Name</td>
<td>Thema</td>
<td>Veröffentlichungszeit</td>
<td>Klassifizierung</td>
</tr>
<xsl:apply-templates select="team" order-by="blue_ID"/>
</table>
</xsl:template>
<xsl:template match="team">
<tr align="center">
<xsl:apply-templates select="blue_ID" />
<xsl:apply-templates select="blue_name" />
<xsl:apply-templates select="blue_text" />
<xsl:apply-templates select="blue_time" />
<xsl:apply-templates select="blue_class" />
</tr>
</xsl:template>
<xsl:template match="blue_ID">
<td bgcolor="#eeeeee">
<xsl:value-of />
</td>
</xsl:template>
<xsl:template match="blue_name">
<td>
<xsl:value-of />
</td>
</xsl:template>
<xsl:template match="blue_text">
<td>
<xsl:value-of />
</td>
</xsl:template>
<xsl:template match="blue_time">
<td>
<xsl:value-of />
</td>
</xsl:template>
<xsl:template match="blue_class">
<td>
<xsl:value-of />
</td>
</xsl:template>
</xsl:stylesheet>
erklären:
1) search.xml ist eine Datendatei, ich glaube, dass jeder kein Problem haben wird.
2) search.xsl ist eine Formatdatei, es gibt mehrere Dinge zu beachten.
(1) Im Skript:
sortField=document.XSLDocument.selectNodes(" //@select ");
Die Funktion lautet: Alle Knoten mit dem Attribut „select“ finden. Das habe ich in der dynamischen Sortierung gesagt
sortField=document.XSLDocument.selectSingleNode(" //@order-by ");
Etwas ist anders. Bitte beachten Sie diesen kleinen Unterschied und ihre jeweiligen Funktionen.
sortField[1].value="team[blue_ID='"+x+"']";
Daher ist sortField[1] der zweite gefundene Knoten und sein entsprechender Knoten
<xsl:apply-templates select="team" order-by="blue_ID"/>
Parameter x ist der im Textfeld eingegebene Wert.
Wir haben die Suchbedingung von select="team" in select="team[blue_ID='x']" geändert.
Die Funktion besteht darin, eine Beurteilungsbedingung hinzuzufügen und nur die XML-Daten anzuzeigen, deren blue_ID-Wert gleich x ist.
Natürlich können Sie die Bedingungen für die Beurteilung erweitern. Das einfache Urteil, das ich hier treffe, soll es für alle verständlicher machen.
Abschließend wird der neu sortierte Inhalt angezeigt, indem der innerHTML-Wert von Layer1 erneut angezeigt wird.
(2) Im Text:
select="team"
In meinem Fall ist es sortField[1], aber das kann sich im Laufe der Zeit ändern.
Dann müssen Sie genau kalkulieren und keine Fehler machen, sonst finden Sie ein anderes Unternehmen!
Ich stelle eine häufig verwendete Methode bereit: Im Code können Sie eine Schleife verwenden, um zu bestimmen, ob es sich um den Knoten handelt, den Sie benötigen.
Noch etwas:
XML hat äußerst strenge Anforderungen an die Groß-/Kleinschreibung. Wenn Ihr Schreiben also nicht standardisiert ist, wird es eine Erkältung bekommen!
Nachwort:
Nachdem jeder mit der Idee der Vervollständigung der dynamischen Sortierung und dynamischen Abfrage vertraut ist, werden Sie feststellen, dass unsere Implementierungsmethode tatsächlich sehr einfach ist.
Ändern Sie einfach einen bestimmten Wert und zeigen Sie ihn dann erneut an.
Bei der dynamischen Paging-Funktion folgen wir dieser Idee noch.