DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> XML簡明教程第10課 :在C++ XML DSO中使用主/細節特征
XML簡明教程第10課 :在C++ XML DSO中使用主/細節特征
編輯:XML詳解     

什麼是主/細節特征?
   新的主/細節特征允許你連接到一個分層紀錄集的當前記錄上,這就意味著你可以把當前紀錄的子元素連接到一個截然不同的表中。例如,考慮一下的XML:
<orders>
  <order order_number="2233">
    <customer>
      <name>John Smith</name>
      <custID>192883</custID>
    </customer>
    <item>
      <name>Fly Swatter</name>
      <price>9.99</price>
    </item>
  </order>
  <order order_number="2234">
    <customer>
      <name>Marea Angela Castaneda</name>
      <custID>827145</custID>
    </customer>
    <item>
      <name>Fly Paper</name>
      <price>15.99</price>
    </item>
  </order>
  <order order_number="2235">
    <customer>
      <name>Amy Jones</name>
      <custID>998022</custID>
    </customer>
    <item>
      <name>Mosquito Netting</name>
      <price>38.99</price>
    </item>
  </order>
</orders>
你可以允許你的用戶通過ID來定位訂單,並顯示(也僅能顯示)當前訂單上的客戶和項目信息,你的用戶並不能查看所有訂單的信息——僅能查看自己感興趣的。
如何連接到細節?
連接到層次結構中的底層(細節信息)的關鍵是了解你的數據的結構,上面的XML在根元素<orders>中含有有三個元素。基於XML DSO所采用的試探法,每一個訂單都映射到一個包含"order_number"、 "customer"、 和 "item"等域的行集中。"order_number"列包含"order_number"屬性的值,"customer"和"item"列包含指向各自的"customer"和"item"
紀錄集的指針。"customer"記錄集中包含帶有"name"和"custID"域的元素的值,"item"記錄集中包含帶有"name"和"price"域的元素的值。
這樣,在頂層("orders")紀錄集中,你可以找到"order_number"的值,然後允許你的用戶通過"order_number"定位訂單。
<P>ORDER NUMBER: <SPAN DATASRC="#XMLDoc" DATAFLD="order_number"></SPAN></P>
現在再添加幾個按鈕來幫助用戶浏覽"orders"紀錄集。
<INPUT TYPE=BUTTON value="Previous Order" onclick="XMLDoc.recordset.movePrev
ious()">
<INPUT TYPE=BUTTON value="Next Order" onclick="XMLDoc.recordset.moveNext()">

為了在當前紀錄的子元素中檢索這個值,創建一張表並把表的 DATASRC 屬性設置為"#XMLDoc",就和上面所作的一樣,但是這時也要把它的 DATAFLD 屬性設置為 "customer"。這是為了告訴表連接到"customer"紀錄集中的數據上,而"customer"紀錄集由"orders"紀錄集中的"customer"域的指針指向。
<TABLE DATASRC="#XMLDoc" DATAFLD="customer" BORDER>
  <THEAD><TH>NAME</TH><TH>ID</TH></THEAD>
  <TR>
    <TD><SPAN DATAFLD="name"></SPAN></TD>
    <TD><SPAN DATAFLD="custID"></SPAN></TD>
  </TR>
</TABLE>
接著對"item"元素作同樣的處理。
<TABLE DATASRC="#XMLDoc" DATAFLD="item" BORDER=1>
  <THEAD><TR><TH>ITEM</TH><TH>PRICE</TH></TR></THEAD>
  <TR>
    <TD><SPAN DATAFLD="name"></SPAN></TD>
    <TD><SPAN DATAFLD="price"></SPAN></TD>
  </TR>
</TABLE>
現在,當用戶點擊按鈕並移到紀錄集中的後一個或前一個紀錄時,表中的數據會相應的改變到當前紀錄。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved