Complementary advantages between XML and HTML (Part 2)

零下一度
Release: 2017-05-02 15:12:21
Original
1562 people have browsed it

Generally, the result set we get from the database query may be very large, so when returning from the server to the client, the data will be divided into several pages and passed separately. At this time, you can use the DATAPAGESIZE attribute in the TABLE element to specify the number of recordset entries that each page contains.

For example:

<TABLE DATASRC=“#xmldso” DATAPAGESIZE=10>
Copy after login

Obviously, if the XML data format is symmetrical, whether it is mapped to an ADO recordset or bound to a table element, the effect will be good. In practical applications, there are many examples of asymmetric XML data. For example, a book may have more than one author, which will cause certain troubles in mapping and binding. The solution to the problem is to use nesting. Each row of the table still corresponds to a main element, and each column also corresponds to a sub-element. For repeated elements, nested tables are used. Let's assume that in books.xml, the author of the first book is Dean Straight, and the authors of the second book are Charlotte Cooper, Shelley Burke, and Regina Murphy. At this point, the binding process is as follows:

● Create a TABLE element and assign the data island ID to the DATAFLD attribute;

● For individual XML elements, such as , create a TD element, and set the corresponding DATAFLD attribute;

● For repeated elements, nest a table inside the TD element;

● Display author information in a single row and single column.

Note that the DATAFLD attribute here must be set to "$TEXT",

to ensure that the contents of the nested element are all displayed in the specified element.

The complete HTML code is as follows:

<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>
Copy after login


In fact, the best situation when using DSO is for data with symmetric structure, while processing non- A more effective way to symmetric data is to use DOM technology which we will introduce later.

Application of DSO Technology

1. Accessing the attributes of an element

It is very simple to use DSO to access the attributes of an element. You can directly handle the attributes by sub-elements.

For example:

<book isbn=“9-001-122-12”>
……
</book>
Copy after login

In this way, when binding to an HTML table, you can process it directly by sub-element:

<TD><SPAN DATAFLD=“isbn”> </SPAN></TD>
Copy after login

If When the attribute name and sub-element name are the same, add "!" before the element name to distinguish them. 2. Traversing the record set

One of the great benefits of DSO processing XML data islands as ADO record sets is that you can use various methods provided by ADO to access the data source, especially when the data island is combined with something like SPAN, p When binding with HTML elements such as INPUT. Usually these elements display the first record of the recordset. If you want to traverse the recordset, you can use the ADO methods: Move, MoveFirst, MoveLast, MoveNext and MovePRevious. For example, if you create a button response function, as long as the user clicks the "Next" button, the corresponding records can be browsed one by one.

For example:

<XML ID=“xmldso” SRC=“books.xml”>
</XML>
Sub btnNext_onclick()
xmldso.RecordSet.MoveNext
End Sub
Copy after login

3. Combining with Script language

Some users are more accustomed to writing Script language, and the use of DSO technology can also be well combined with various Scripts.

For example (taking VB Script as an example), when accessing the record set, the code is as follows:

Dim rsBooks
Set rsBooks = xmldso.RecordSet
访问字段(子元素)的值:
Dim sTitle
sTitle = rsBooks(“title”)
Copy after login

You can use the innerText and innerHTML attributes to pass the obtained value to the HTML element . For example, there is a p element named pTitle, and the assignment code is as follows:

pTitle.innerTEXT = sTitle
Copy after login

You can also use scripts to handle many DSO events. The following table lists some of them:

The way to handle various events in a script is to use the FOR attribute in the

Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!