譯者:孫一中 董曉雨 來源:中國XML聯(lián)盟 http://www. 第1課: 處理XML元素 ---------------------------------------------------------------------------- ---- 什么是XML元素? XML是一種標識語言,一組用來創(chuàng)建描述數(shù)據(jù)的語法標簽的規(guī)則集。一個XML元素是由開 始標簽、結束標簽以及標簽之間的數(shù)據(jù)構成的。開始和結束標簽用來描述標簽之間的數(shù) 據(jù)。標簽之間的數(shù)據(jù)被認為是元素的值。例如,在下面一個XML元素的例子中,元素"di rector"的值是"Ed Wood"。 <director>Ed Wood</director> 元素名("director")允許你把"Ed Wood"這個值標出來,這樣你就能把這些數(shù)據(jù)同另外 類似的數(shù)據(jù)區(qū)分開來。例如,有可能另一個元素的值也是"Ed Wood"。 <actor>Ed Wood</actor> 由于每個元素都有不同的標簽名,所以你能很容易把上面兩個元素的值區(qū)別開來。如果 從語義上沒有辦法把數(shù)據(jù)標出來,兩個有同樣值的元素會混淆起來。
屬性 一個元素可以包含一個或多個屬性,屬性是一個由“=”隔開的名稱值,如: <CITY ZIP="01085">Westfield</CITY> 在上面的例子中,ZIP="01085"是元素<CITY>的一個屬性。屬性用來給一個元素添加附加 的、次要的信息,通常是元信息,屬性還可以使用缺省值,而元素卻不能這樣做。元素 的每一個屬性可以以任意順序進行說明,但僅能說明一次。 此外,XML標簽對大小寫敏感,因此以下這三個是不同的元素。 <City><CITY><city>
第2課: 處理XML文檔 ---------------------------------------------------------------------------- ---- 什么是XML文檔? 一個基本的XML文檔就是一個XML元素,它可以嵌套XML元素。例如,下面的XML元素“bo oks”就是一個有效的XML文檔。 <books> <book isbn="0345374827"> <title>The Great Shark Hunt</title> <author>Hunter S. Thompson</author> </book> </books> 處理指導 構建一個基本的XML文檔需要記住關鍵的四點: 所有元素必須有結束標簽; 所有元素必須正確的嵌套(不允許交迭元素);
所有特征值必須加引號; 每一個文檔都必須有一個唯一的第一元素和根節(jié)點。
第3課 處理XML數(shù)據(jù)島 ---------------------------------------------------------------------------- ---- 什么是XML數(shù)據(jù)島? 數(shù)據(jù)島是指存在于HTML頁面中的XML代碼。數(shù)據(jù)島允許你在HTML頁面中集成XML,對XML編 寫腳本,而不需要通過腳本或<OBJECT>標簽讀取XML。幾乎所有能夠存在于一個結構完整 的XML文檔中的東西都能存在于一個數(shù)據(jù)島中。包括處理指示、DOCTYPE聲明和內部子集 。(注意,編碼串不能放在數(shù)據(jù)島中。) <XML>元素標記數(shù)據(jù)島的開始,它的ID屬性提供了一個可以用來引用數(shù)據(jù)島的名稱。 數(shù)據(jù)島的XML可以是內嵌的: <XML ID="XMLID"> <customer> <name>Herbert Hanley</name> <custID>81422</custID> </customer>
</XML> 或者在XML標簽中通過SRC屬性引用: <XML ID="XMLID" SRC="customer.xml"></XML> 也可以使用<SCRIPT>標簽來創(chuàng)建一個數(shù)據(jù)島: <SCRIPT LANGUAGE="xml" ID="XMLID"> <customer> <name>Mark Hanson</name> <custID>81422</custID> </customer> </SCRIPT>
第4課: 使用XML對象模型 ---------------------------------------------------------------------------- ---- 什么是XML對象模型? XML對象模型是一個對象集,可以使用這個對象集來訪問或處理存儲在XML文檔中的數(shù)據(jù) 。XML文檔構成一顆樹,樹上的每一個元素可以看作是一個節(jié)點,具有不同屬性和方法的 對象代表了樹和它的節(jié)點,每個節(jié)點包含文檔中的實際數(shù)據(jù)。 如何訪問樹中的節(jié)點? 可以通過象腳本來訪問樹中的節(jié)點。這些對象是在解析器裝載并解析XML文檔時由XML解 析器創(chuàng)建的。通過ID值可以引用樹,或文檔對象。在下面的例子中,MyXMLDocument是文 檔的對象的ID值,使用文檔對象的屬性和方法可以訪問樹的根和子節(jié)點對象。根,或文 檔元素,是最頂層的節(jié)點,子節(jié)點從根上擴展開形成XML樹。根節(jié)點只可以在文檔中出現(xiàn) 一次。 點擊下面的數(shù)據(jù)島可以展示用來訪問每個節(jié)點的代碼。根節(jié)點是<class>,它的子節(jié)點是 <student>,這個子節(jié)點還有兩個子節(jié)點<name>和<GPA>。 <XML ID="MyXMLDocument"> <class> <student studentID="13429"> <name>Jane Smith</name> <GPA>3.8</GPA> </student> </class> </XML> 下面列出了一些簡單的屬性和方法,可用來訪問XML文檔的節(jié)點。 XMLDocument:返回對XML文檔對象模式的引用。 documentElement:返回XML文檔的根節(jié)點。 childNodes:返回節(jié)點的孩子節(jié)點目錄。 item:通過索引訪問目錄中的個別節(jié)點。索引值是從0開始的,所以item(0)返回第一個 節(jié)點。 text:返回節(jié)點的內容。 下面是一個帶有數(shù)據(jù)島的HTML頁面。數(shù)據(jù)島被包含在<XML>元素中。 <HTML> <HEAD> <TITLE>HTML with XML Data Island</TITLE> </HEAD> <BODY> <P>Within this document is an XML data island.</P> <XML ID="resortXML"> <resorts> <resort>Calinda Cabo Baja</resort> <resort>Na Balam Resort</resort> </resorts> </XML> </BODY> </HTML> 你能通過ID屬性訪問數(shù)據(jù)島,“resortXML”成為文檔對象的名稱。你能利用這個對象的 方法和屬性訪問它的根節(jié)點和孩子節(jié)點。在上面的例子中,根節(jié)點是<resorts>,孩子節(jié) 點是<resort>。 下面的代碼訪問第二個孩子節(jié)點<resort>并返回它的內容“Na Balam Resort”。 resortXML.XMLDocument.documentElement.childNodes.item(1).text 如何獲得XML DOM樹的信息? 有以下幾種方法和接口來獲得DOM的信息。 如果使用腳本語言,DOMDocument對象提供load、loadXML、save方法和xml屬性。 對Visual Basic 和 C 或 C++ 編程者來說,IXMLDOMDocument接口提供和DOMDocument對 象同樣的成員。 IXMLDOMDocument也可以實現(xiàn)標準的COM接口,如IPersistStreamInit、IPersistMonike r和IStream。
第5課:使用XML名域 ---------------------------------------------------------------------------- ---- 什么是XML名域? XML名域是一組可以用作XML文檔的元素或屬性名稱的名稱集。為了避免元素之間出現(xiàn)相 同名稱的沖突,名域限定Web中的名稱必須是唯一的。名域由某些URI(Universal Reso urce Identifier)來進行識別,不管是URL(Uniform Resource Locator),還是URN( Uniform Resource Number)都沒有關系,它并不管指向的什么內容。URI使用簡單,因 為它們在Internet上是全球唯一的。 名域可以顯式聲明,也可以缺省聲明。在顯式聲明中可以定義一個簡寫形式或是一個詞 頭來代替整個名域,可以使用這個詞頭來引用屬于名域的元素。當節(jié)點包含不同名域的 元素時,顯式聲明非常有用。缺省聲明聲明一個可以被所有元素訪問的名域,而且并不 定義詞頭。 <BOOKS> <bk:BOOK xmlns:bk="urn:BookLovers.org:BookInfo" xmlns:money="urn:Finance:Money">
<bk:TITLE>A Suitable Boy</bk:TITLE> <bk:PRICE money:currency="US Dollar">22.95</bk:PRICE> </bk:BOOK> </BOOKS> 所有以"bk:"或"money:"開頭的元素都可以看成是分別來自于名域"urn:BookLovers.org :BookInfo"或"urn:Finance:Money"。 如何聲明缺省名域? 在名域聲明時沒有詞頭就屬于文檔的缺省名域,文檔中所有沒有詞頭的元素和屬性都屬 于缺省名域。下面的例子聲明了<BOOK>元素和<BOOK>中所有的元素(<TITLE>, <PRICE> , currency)都屬于名域"urn:BookLovers.org:BookInfo."。 <BOOK xmlns="urn:BookLovers.org:BookInfo"> <TITLE>A Suitable Boy</TITLE> <PRICE currency="US Dollar">22.95</PRICE> </BOOK>
第6課 使用XML Schema ---------------------------------------------------------------------------- ---- 什么是XML Schema? XML Schema是一個基于XML的語法或schema規(guī)范,用來定義XML文檔的標記方式。XML Sc hema是一個由Microsoft建議的schema規(guī)范,它與文檔類型定義(DTD)相比具有很大的 優(yōu)勢,而DTD是最初用來定義XML模型的schema規(guī)范。DTD存在很多缺點,包括使用非XML 語法,不支持數(shù)據(jù)類型定義,不具有擴展性等。例如,DTD不允許把元素內容定義為另外 一個元素,或字符串。想了解更多有關DTD的內容,可以參考W3C XML建議書。 XML Sch ema從幾個方面改善了DTD,包括使用XML語法,支持數(shù)據(jù)類型定義和名域。例如,XML S chema允許你把一個元素說明為一個integer, float,Boolean, URL等類型。 在Internet Explorer 5中的XML解析器可以解析使用DTD或XML Schema的XML文檔。 如何建立XML Schema? 請在下面的XML文檔中找一找每個節(jié)點的schema聲明。 <class xmlns="x-schema:classSchema.xml"> <student studentID="13429"> <name>Jane Smith</name> <GPA>3.8</GPA> </student> </class> 你會注意到在上面文檔中默認的名域是“x-schema:classSchema.xml”。這告訴解析器 根據(jù)URL(“classSchema.xml”)上的schema(x-schema)來解析整個文檔。 下面是上面那個文檔的完整的schema。注意schema的根元素中的名域聲明。第一個(xml ns=”urn:schemas-microsoft-com:xml-data”)表明這個XML文檔是一個XML Schema。第 二個(xmlns:dt=”urn:schemas-microsoft-com:datatypes”)允許schema處理者在Elem entType和AttributeType聲明中的type屬性前加dt前綴來說明元素的類型和內容的特征 。 <Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-mi crosoft-com:datatypes"> <AttributeType name=‘studentID‘ dt:type=‘string‘ required=‘yes‘/> <ElementType name=‘name‘ content=‘textOnly‘> <ElementType name=‘GPA‘ content=‘textOnly‘ dt:type=‘float‘/> <ElementType name=‘student‘ content=‘mixed‘> <attribute type=‘studentID‘/> <element type=‘name‘/> <element type=‘GPA‘/> </ElementType> <ElementType name=‘class‘ content=‘eltOnly‘> <element type=‘student‘/> </ElementType> </Schema> 用來定義元素和屬性的聲明元素如下所示: 元 素 說 明 ElementType 把類型和條件賦給一個元素,可以包含子元素 AttributeType 把類型和條件賦給一個屬性 attribute 聲明以前定義過的屬性類型可以出現(xiàn)在名為ElementType的元素的作用域中 element 聲明以前定義過的元素類型可以出現(xiàn)在名為ElementType的元素的作用域中 Schema的內容以最深層的元素的“AttributeType”和“ElementType”聲明開頭。 <AttributeType name=‘studentID‘ dt:type=‘string‘ required=‘yes‘/> <ElementType name=‘name‘ content=‘textOnly‘> <ElementType name=‘GPA‘ content=‘textOnly‘ dt:type=‘float‘/> ElementType聲明后接著就是它的屬性和子元素,如果一個元素有屬性或子元素,必須把 這種方法包含在它的ElementType聲明中,或者是必須在它們自己的 ElementType 或 A ttributeType聲明中進行前導聲明。 <ElementType name=‘student‘ content=‘mixed‘> <attribute type=‘studentID‘/> <element type=‘name‘/> <element type=‘GPA‘/> </ElementType> 不同于DTDs,XML Schema允許有一個開放的內容模式,你可以進行定義數(shù)據(jù)類型、使用 默認值等等操作而不必限定內容。 在下面的schema中,<GPA> 元素的類型被定義并有一個默認值,但在 <student> 元素中 沒有其他節(jié)點被聲明。 <Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-mic rosoft-com:datatypes"> <AttributeType name="scale" default="4.0"/> <ElementType name="GPA" content="textOnly" dt:type="float"> <attribute type="scale"/> </ElementType> <AttributeType name="studentID"/> <ElementType name="student" content="eltOnly" model="open" order="many "> <attribute type="studentID"/> <element type="GPA"/> </ElementType> </Schema> 上面的schema允許你只驗證你所關心的區(qū)域,這使你對文檔的驗證級別有更多的控制, 并允許你使用schema提供的一些特性而不必嚴格確認。 嘗試一下! 試著處理一下下面的XML文檔的schema。 <order> <customer> <name>Fidelma McGinn</name> <phone_number>425-655-3393</phone_number> </customer> <item> <number>5523918</number> <description>shovel</description> <price>39.99<price> </item> <date_of_purchase>1998-10-23</date_of_purchase> <date_of_delivery>1998-11-03</date_of_delivery> </order> 如果你處理完schema,在XML Validator中運行 . 下載MSDN Online的區(qū)域中提供了一套 XML sample files, 包括一個有相關schema的XM L文檔。下載這些示例程序可以與XML文檔和schema一起運行。如果你想要根據(jù)一個sche ma來測試XML的有效性,可以從XML Validator 處下載文檔或查看Mime Type Viewer中的 XML文件。 一些說明: ElementType和 AttributeType 聲明必須放在attribute和element內容聲明之前。例如 ,在上面的schema中,<GPA>元素的ElementType聲明必須放在<student>元素的Element
Type聲明之前?!?nbsp; order屬性的默認值是建立在content屬性的值上的。當content值為“eltOnly”時,or der默認值是seq。當content值為“mixed”時,order默認值是“many”。see 如果想了 解有關這些缺省值的信息,可以查看 XML Schema Reference。
第7課:在XML文檔中使用數(shù)據(jù)類型 ---------------------------------------------------------------------------- ---- 什么是XML文檔中的數(shù)據(jù)類型? XML文檔中的數(shù)據(jù)類型是賦給實例中一個元素的類型,可以使用dt:dt屬性來實現(xiàn),也可 以通過一個XML Schema,一個XML文檔的正式定義來實現(xiàn)。此外,數(shù)據(jù)類型可以聲明為元 素,XML解析器使用數(shù)據(jù)類型信息來驗證文檔的有效性。 以前,XML元素的值局限于一個單一的類型String,因此想要處理XML文檔的開發(fā)者需要 花費大量的時間來把應用程序中的所有值都轉換為一種類型。輸入數(shù)據(jù)時解析器將會注 意到數(shù)據(jù)類型的轉換。此外,因為這些值都賦予一個特定的數(shù)據(jù)類型,所以對這些值的 轉換遵循要數(shù)據(jù)類型的規(guī)范,這就提供了一種驗證用戶輸入有效性的方法。 除了有一個String的值,每一個XML元素也可以有一個類型定義的值,例如下面的XML元 素: <date>1970-09-30</date> 如何對XML元素值進行數(shù)據(jù)類型定義? 看一看下面的XML文檔: <?xml version="1.0"?> <weather xmlns="x-schema:weatherSchema.xml"> <date>1970-09-30</date> <degrees>67.5</degrees> </weather> 其中"weatherSchema.xml"是下面的文件。 <Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-mic rosoft-com:datatypes"> <ElementType name="date" content="textOnly" dt:type="date"/> <ElementType name="degrees" content="textOnly" dt:type="float"/> <ElementType name="weather" content="eltOnly"> <element type="date"/> <element type="degrees"/> </ElementType> </Schema> 上面的schema是一個把數(shù)據(jù)類型賦給前面的XML文檔的正式定義。屬性xmlns是聲明名域 的XML關鍵字,聲明‘xmlns:dt="urn:schemas-microsoft-com:datatypes"‘把dt賦給名域 "urn:schemas-microsoft-com:datatypes.",任何定義為dt的類型都屬于名域"urn:sch emas-microsoft-com:datatypes.". Schema 和數(shù)據(jù)類型名域要在XML Schema的開始進行聲明,這樣dt詞頭可以用來指示數(shù)據(jù) 類型定義中使用那種 類型的屬性。 <Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-mic rosoft-com:datatypes"> <ElementType name="NUMBER" content="textOnly" dt:type="number"/> 對XML文檔中的元素進行類型定義 元素可以通過元素實例的 dt 屬性進行類型定義,而要這樣做需要在XML文檔的開始聲明 數(shù)據(jù)類型名域。 <NUMBERS xmlns:dt="urn:schemas-microsoft-com:datatypes"> <NUMBER dt:dt="number">44533</NUMBER> </NUMBERS> dt詞頭現(xiàn)在可以作為dt的屬性把數(shù)據(jù)類型賦給元素的實例。 在XML文檔中把數(shù)據(jù)類型作為元素使用 除了在元素的實例或schema中聲明數(shù)據(jù)類型外,數(shù)據(jù)類型也可以作為元素使用,比較下 面的例子,第一個例子在元素的實例中聲明數(shù)據(jù)類型: <shoes xmlns:dt="urn:schemas-microsoft-com:datatypes" id="f1121" sizes="mens "/> <sizes id="mens"> <size dt:dt="int">8</size> <size dt:dt="int">10</size> <size dt:dt="int">12</size> </sizes> 第二個例子把類型聲明為元素: <shoes xmlns:dt="urn:schemas-microsoft-com:datatypes" id="f1121" sizes="arra y1"/>
<array id="array1"> <dt:int>8</dt:int> <dt:int>10</dt:int> <dt:int>12</dt:int> </array> 而通過schema是不可能對這種元素進行類型定義的。 在 XML Data Types Reference中,有一個可以在 XML文檔中使用的數(shù)據(jù)類型的列表。
第8課:訪問經(jīng)過類型定義的XML值 ---------------------------------------------------------------------------- ---- 什么是經(jīng)過類型定義的XML值? 經(jīng)過類型定義的XML值是指在XML Schema中被指定數(shù)據(jù)類型的元素值。XML解析器使用sc hema來確認文檔。XML Schema信息可以放在schema文件中,也可以放在本身的XML文檔中 。 如何訪問經(jīng)過類型定義的XML值? 可以通過XML對象模型訪問經(jīng)過類型定義的數(shù)據(jù)。就好象你能通過調用元素節(jié)點的nodeV alue屬性找到元素值一樣,你可以調用元素本身的nodeTypedValue屬性找到經(jīng)過類型定 義的元素值。 例如,考慮一下下面的XML文檔: <?xml version="1.0"?> <weather xmlns="x-schema:weatherSchema.xml"> <date>1970-09-30</date> <degrees>67.5</degrees>
</weather> 其中“weatherSchema.xml”是下面這個文件: <Schema xmlns="urn:schemas-microsoft-com:xml-data"xmlns:dt="urn:schemas-micr osoft-com:datatypes"> <ElementType name="date" content="textOnly" dt:type="date"/> <ElementType name="degrees" content="textOnly" dt:type="float"/> <ElementType name="weather" content="eltOnly"/> <element type="date"/> <element type="degrees"/> </ElementType> </Schema> 如果你要定位<degrees>這個元素(xmlDocument.documentElement.childNodes.item(1 )),你可以按如下方式調用nodeTypedValue來訪問它的類型定義值: (xmlDocument.documentElement.childNodes.item(1).nodeTypedValue)。
第9課:使用C++ XML DSO ---------------------------------------------------------------------------- ---- 什么是C++ XML DSO? Microsoft? Internet Explorer 5中內嵌了一個C++數(shù)據(jù)源對象(DSO),可以用來把XML連 接到HTML中。Microsoft? Internet Explorer 4中內嵌的Java XML DSO在Internet Exp lorer 5中仍然支持,但是新的C++ DSO有更好的性能,還可以直接連接XML數(shù)據(jù)島。 如何把XML連接到HTML上? 考慮下面的XML文件: <universities> <university> <name>UCSB</name> <location>Santa Barbara, CA</location> </university> <university> <name>University of Texas at Arlington</name> <location>Arlington, TX</location> </university> <university> <name>USM</name> <location>Hattiesburg, MS</location> </university> <university> <name>Baylor</name> <location>Waco, TX</location> </university> </universities> 可以用以下的HTML把這個XML連接到一個重復表中: <XML ID=xmlDoc src="universities.xml"></XML> <TABLE DATASRC="#xmlDoc" BORDER=1> <THEAD><TH>NAME</TH><TH>LOCATION</TH></THEAD> <TR> <TD><SPAN DATAFLD="name"></SPAN></TD> <TD><SPAN DATAFLD="location"></SPAN></TD> </TR> </TABLE> 這里不需要<APPLET> 或 <OBJECT>標簽,因為XML DSO已經(jīng)為你完成了這些工作
第10課 :在C++ XML DSO中使用主/細節(jié)特征 ---------------------------------------------------------------------------- ---- 什么是主/細節(jié)特征? 新的主/細節(jié)特征允許你連接到一個分層紀錄集的當前記錄上,這就意味著你可以把當前 紀錄的子元素連接到一個截然不同的表中。例如,考慮一下的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來定位訂單,并顯示(也僅能顯示)當前訂單上的客戶和項 目信息,你的用戶并不能查看所有訂單的信息——僅能查看自己感興趣的。 如何連接到細節(jié)? 連接到層次結構中的底層(細節(jié)信息)的關鍵是了解你的數(shù)據(jù)的結構,上面的XML在根元 素<orders>中含有有三個元素?;赬ML 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> 現(xiàn)在再添加幾個按鈕來幫助用戶瀏覽"orders"紀錄集。 <INPUT TYPE=BUTTON VALUE="Previous Order" onclick="xmlDoc.recordset.movePrev ious()"> <INPUT TYPE=BUTTON VALUE="Next Order" onclick="xmlDoc.recordset.moveNext()">
為了在當前紀錄的子元素中檢索這個值,創(chuàng)建一張表并把表的 DATASRC 屬性設置為"#x mlDoc",就和上面所作的一樣,但是這時也要把它的 DATAFLD 屬性設置為 "customer" 。這是為了告訴表連接到"customer"紀錄集中的數(shù)據(jù)上,而"customer"紀錄集由"order s"紀錄集中的"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> 現(xiàn)在,當用戶點擊按鈕并移到紀錄集中的后一個或前一個紀錄時,表中的數(shù)據(jù)會相應的 改變到當前紀錄。
|