Im Allgemeinen kann die Ergebnismenge, die wir aus der Datenbank abfragen, sehr groß sein, sodass die Daten bei der Rückkehr vom Server zum Client jeweils auf mehrere Seiten zur Übermittlung aufgeteilt werden. Zu diesem Zeitpunkt können Sie das DATAPAGESIZE-Attribut im TABLE-Element verwenden, um die Anzahl der Recordset-Einträge anzugeben, die jede Seite enthält.
Zum Beispiel:
<TABLE DATASRC=“#xmldso” DATAPAGESIZE=10>
Wenn das XML-Datenformat symmetrisch ist, ist der Effekt natürlich sehr gut, unabhängig davon, ob es einem ADO-Recordset zugeordnet oder an eine Tabelle gebunden ist Element gut. In praktischen Anwendungen gibt es viele Beispiele für asymmetrische XML-Daten. Beispielsweise kann ein Buch mehr als einen Autor haben, was zu bestimmten Problemen bei der Zuordnung und Bindung führen kann. Die Lösung des Problems besteht in der Verwendung von Verschachtelungen. Jede Zeile der Tabelle entspricht weiterhin einem Hauptelement und jede Spalte entspricht auch einem Unterelement. Für wiederholte Elemente werden verschachtelte Tabellen verwendet. Nehmen wir an, dass in „books.xml“ der Autor des ersten Buchs Dean Straight ist und die Autoren des zweiten Buchs Charlotte Cooper, Shelley Burke und Regina Murphy sind. Zu diesem Zeitpunkt läuft der Bindungsprozess wie folgt ab:
● Erstellen Sie ein TABLE-Element und weisen Sie die Dateninsel-ID dem DATAFLD-Attribut zu.
● Für einzelne XML-Elemente, z. B.
● Verschachteln Sie bei wiederholten Elementen eine Tabelle innerhalb des TD-Elements.
● Zeigen Sie Autoreninformationen in einer einzelnen Zeile und einzelnen Spalte an .
Beachten Sie, dass das DATAFLD-Attribut hier auf „$TEXT“ gesetzt sein muss,
um sicherzustellen, dass der Inhalt des verschachtelten Elements vollständig im angegebenen Element angezeigt wird.
Der vollständige HTML-Code lautet wie folgt:
<TABLE BORDER=1 DATASRC=“#xmldso”> <THEAD><TR><TH>Title</TH> <TH>ISBN</TH> <TH>Author</TH></TR></THEAD> <TBODY> <TR><TD> <p DATAFLD=“title”></p></TD> <TD><p DATAFLD=“isbn”> </p></TD> <TD> <TABLE BORDER=0 DATASRC=“#xmldso” DATAFLD=“author”> <TR><TD><SPAN DATAFLD=“$Text”></SPAN></TD></TR> </TABLE> </TD> </TR></TBODY> </TABLE>
Tatsächlich ist die beste Situation bei der Verwendung von DSO für Daten mit symmetrischer Struktur und A Eine effektivere Möglichkeit, mit asymmetrischen Daten umzugehen, ist die Verwendung der DOM-Technologie, die wir später vorstellen werden.
Anwendung der DSO-Technologie
1. Auf die Attribute eines Elements zugreifen
Die Verwendung von DSO für den Zugriff auf die Attribute eines Elements ist sehr einfach. Sie können die Attribute direkt als Unterelemente verarbeiten.
Zum Beispiel:
<book isbn=“9-001-122-12”> …… </book>
Auf diese Weise kann bei der Bindung an eine HTML-Tabelle diese direkt per Unterelement verarbeitet werden:
<TD><SPAN DATAFLD=“isbn”> </SPAN></TD>
Wenn der Attributname und der Unterelementname identisch sind, fügen Sie „!“ vor dem Elementnamen hinzu, um sie zu unterscheiden. 2. Durchlaufen des Datensatzes
Einer der großen Vorteile der DSO-Verarbeitung von XML-Dateninseln als ADO-Datensatzsätze besteht darin, dass Sie verschiedene von ADO bereitgestellte Methoden verwenden können, um auf die Datenquelle zuzugreifen, insbesondere wenn die Dateninsel mit etwas kombiniert wird wie SPAN, p Beim Binden mit HTML-Elementen wie INPUT. Normalerweise zeigen diese Elemente den ersten Datensatz des Recordsets an. Um den Recordset zu durchsuchen und zu durchsuchen, können Sie die ADO-Methoden verwenden: Move, MoveFirst, MoveLast, MoveNext und MovePRevious. Wenn Sie beispielsweise eine Schaltflächenantwortfunktion erstellen, können die entsprechenden Datensätze einzeln durchsucht werden, solange der Benutzer auf die Schaltfläche „Weiter“ klickt.
Zum Beispiel:
<XML ID=“xmldso” SRC=“books.xml”> </XML> Sub btnNext_onclick() xmldso.RecordSet.MoveNext End Sub
3. Kombination mit Skriptsprache
Einige Benutzer sind eher an das Schreiben von Skriptsprachen gewöhnt. Die DSO-Technologie lässt sich auch gut mit verschiedenen Skripten kombinieren.
Zum Beispiel (am Beispiel von VB Script) lautet der Code beim Zugriff auf den Datensatz wie folgt:
Dim rsBooks Set rsBooks = xmldso.RecordSet 访问字段(子元素)的值: Dim sTitle sTitle = rsBooks(“title”)
Sie können innerText und verwenden innerHTML-Attribute, um den erhaltenen Wert an das HTML-Element zu übergeben. Beispielsweise gibt es ein p-Element mit dem Namen pTitle und der Zuweisungscode lautet wie folgt:
pTitle.innerTEXT = sTitle
Skripte können auch viele DSO-Ereignisse verarbeiten:
Um verschiedene Ereignisse in einem Skript zu verarbeiten, verwenden Sie das FOR-Attribut im