xml資料來源物件是一個ActiveX控件,允許你在XML檔案和HTML頁面之間操作資料。本文將向你展示如何從各種XML資料來源擷取數據,以及如何使用javaScript顯示這些數據。
XML資料來源物件DSO是微軟ActiveX控件,建構在微軟IE4以後的版本上。這個物件允許你把一個外部的XML檔案或是嵌入HTML檔案中的內容提取到HTML頁面中。
你可以在一個Web頁面中使用XML - DSO從一個外部XML檔案中選取內容,從嵌入Web頁面的XML中提取XML數據,然後使用Javascript操作這些資料。然而,並不建議在Internet中使用這個對象,因為DSO只能工作在MSIE 4以上的瀏覽器中,因此這可能會帶來一些相容性問題。 所以,在企業內部網路使用XML-DSO是很適合的。
開始
為了初始化XML - DSO對象,我們使用<OBJECT>標記。 用於XML-DSO的CLASSID是:
CLSID:550dda30-0541-11d2-9ca9-0060b0ec3d39
這ID唯一標識XML-DSO。使用下面的程式碼在一個Web頁面中初始化這個控制項:
<OBJECT ID="SomeID" CLASSID="CLSID:550dda30-0541-11d2-9ca9-0060b0ec3d39"></OBJECT>
雖然大部分物件需要許多參數與之相關聯,但XML-DSO不需要任何參數。
使用一個XML資料島析取資料
首先,透過使用<XML>標記包含一個XML資料島。其次,給它一個ID,xmldb --以備以後使用。 資料其實是使用HTML標記:<ALT>,<SPAN>,<DIV>等等提取的。代碼列表1中的代碼使用了<SPAN>標記。 datasrc屬性指定了你想從中提取資料的那個資料島。 datafld屬性指定了你想要的資料的XML標記。所以,第一個<SPAN>提取名稱,而第二<SPAN>提取性別。
程式碼清單1:
<!-- example1.htm --> <html> <head> <title>XML DSO-example1.htm</title> </head> <body bgcolor="#FFFFFF"> <xml id="xmldb"> <db> <member> <name>PRemshree Pillai<name> <sex>male</sex> </member> <member> <name>Vinod</name> <sex>male</sex> </member> </db> </xml> <span datasrc="#xmldb" datafld="name"<</span> <br> <span datasrc="#xmldb" datafld="sex"></span> </body> </html>
注意這段程式碼沒有初始化一個XML-DSO物件。這是因為XML資料島的使用中已經隱式地創建了一個。輸出應為:
Premshree Pillai male
注意在XML資料中有兩個<name>和<sex>標記。使用這個方法,你只能提取這些標記中的第一個實例。程式碼清單2中的程式碼使用<TABLE>標記擷取所有的實例:
# 輸出將是:
# Name |
代码列表2:
<!-- example2.htm --> <html> <head> <title>XML DSO-example2.htm</title> </head> <body bgcolor="#FFFFFF"> <xml id="xmldb"> <db> <member> <name>Premshree Pillai<name> <sex>male</sex> </member> <member> <name>Vinod</name> <sex>male</sex> </member> </db> </xml> <table datasrc="#xmldb" border="1"> <thead> <th>Name</th> <th>Sex</th> </thead> <tr> <td><div datafld="name"></div></td> <td><div datafld="sex"></div></td> </tr> </table> </body> </html>
使用外部XML文件提取数据
为了使用XML-DSO加载一个外部XML文件,你必须显式的包含这个对象并且使用一些JavaScript。
首先创建一个XML-DSO对象,使用ID myXML。添加宽度和高度属性到<OBJECT>标记中,然后设置它们的值为0。这保证XML-DSO对象不会占据你的Web页面的任何空间。
其次,使用datasrc创建一个象myXML一样的表--类似于代码列表2中一样。代码使用<DIV>标记(在TD标记之)提取数据,使用datafld作为第一栏的信息,并且使用URL作为第二栏。添加<SCRIPT>标记,因为在这里,外部的XML使用Java脚本显式地声明你想要加载的XML文件。
设置变量xmlDso为myXML.XMLDocument。myXML引用你已经创建的对象。接下来,使用XML-DSO的load()方法加载example3.xml。文件example3.xml连接到对象myXML上。
<!-- example3.xml --> <?xml version="1.0" ?> <ticker> <item> <message>JavaScript Ticker using XML DSO</message> <URL>http://someURL.com</URL> </item> </ticker>
现在,研究一下下面的HTML页面:
<!-- example3.htm --> <html> <head> <title>XML DSO-example3.htm</title> <script language="JavaScript"> function load() { var xmlDso=myXML.XMLDocument; xmlDso.load("example3.xml"); } </script> </head> <body bgcolor="#FFFFFF" onLoad="load()"> <object id="myXML" CLASSID="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39" width="0" height="0"></object> <table datasrc="#myXML" border="1"> <thead> <th>Message</th> <th>URL</th> </thead> <tr> <td><div datafld="message"></div></td> <td><div datafld="URL"></div></td> </tr> </table> </body> </html>
输出应是:
Message URL JavaScript Ticker using XML DSO http://someURL.com
上面的脚本非常特殊化。下面给出一个更一般的脚本:
<script language="JavaScript"> var xmlDso; function load(xmlFile, objName) { eval('xmlDso='+objName+'.XMLDocument'); xmlDso.load(xmlFile); } </script> Now, to load any XML file use: load("SomeXMLFile.xml","anyXmlDsoObject");
使用XML-DSO和JavaScript
假设你有一个包含姓名、电子邮件地址和电话号码的XML文件。你想使用它构建一个应用程序,显示每个人的档案--一次显示一个。用户将使用"Next"和"Previous"按钮浏览每个人的数据。Javascript可以帮助你实现这个目的。
下面的代码使用记录集方法把文件中所有的数据保存到一个变量memberSet中。moveNext()方法指向下一个数据项(下一行)。脚本然后载入XML文件example4.xml,把记录保存到变量memberSet中。第一个记录将被显示,但是memberSet.moveNext()指向文件中相对于前一个指定数据的下一个记录。
<!-- example4.xml --> <?xml version="1.0" ?> <myDB> <member> <name>Premshree Pillai</name> <sex>male</sex> </member> <member> <name>Vinod</name> <sex>male</sex> </member> <member> <name>Santhosh</name> <sex>male</sex> </member> </myDB>
这里是相应的HTML文件:
<!-- example4.htm --> <html> <head> <title>XML DSO-example4.htm</title> <script language="JavaScript"> function load() { var xmlDso=myDB.XMLDocument; xmlDso.load("example4.xml"); /* Get the complete record set */ var memberSet=myDB.recordset; /* Go to next data */ memberSet.moveNext(); } </script> </head> <body bgcolor="#FFFFFF" onLoad="load()"> <object id="myDB" CLASSID="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39" width="0" height="0"></object> <span datasrc="#myDB" datafld="name"></span> </body> </html>
输出应是:
Vinod
下面给出更多使用JavaScript操作XML-DSO的方法:
· movePrevious(): 指向前一个数据项。
· moveFirst(): 指向第一个数据项。
· moveLast(): 指向最后一个数据项。
· EOF: 这个属性用来检测我们是否已经到达数据记录的底部。
使用XML-DSO和JavaScript
假设你有一个包含姓名、电子邮件地址和电话号码的XML文件。你想使用它构建一个应用程序,显示每个人的档案--一次显示一个。用户将使用"Next"和"Previous"按钮浏览每个人的数据。Javascript可以帮助你实现这个目的。
下面的代码使用记录集方法把文件中所有的数据保存到一个变量memberSet中。moveNext()方法指向下一个数据项(下一行)。脚本然后载入XML文件example4.xml,把记录保存到变量memberSet中。第一个记录将被显示,但是memberSet.moveNext()指向文件中相对于前一个指定数据的下一个记录。
<!-- example4.xml --> <?xml version="1.0" ?> <myDB> <member> <name>Premshree Pillai</name> <sex>male</sex> </member> <member> <name>Vinod</name> <sex>male</sex> </member> <member> <name>Santhosh</name> <sex>male</sex> </member> </myDB>
这里是相应的HTML文件:
<!-- example4.htm --> <html> <head> <title>XML DSO-example4.htm</title> <script language="JavaScript"> function load() { var xmlDso=myDB.XMLDocument; xmlDso.load("example4.xml"); /* Get the complete record set */ var memberSet=myDB.recordset; /* Go to next data */ memberSet.moveNext(); } </script> </head> <body bgcolor="#FFFFFF" onLoad="load()"> <object id="myDB" CLASSID="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39" width="0" height="0"></object> <span datasrc="#myDB" datafld="name"></span> </body> </html>
输出应是:
Vinod
下面给出更多使用JavaScript操作XML-DSO的方法:
· movePrevious(): 指向前一个数据项。
· moveFirst(): 指向第一个数据项。
· moveLast(): 指向最后一个数据项。
· EOF: 这个属性用来检测我们是否已经到达数据记录的底部。
initTicker()首先检查是否有IE 4+。如果浏览器是IE4+,这个XML文件被作为一个参数被传递并载入。如果定时器失败了,那么调用xmlDsoTicker()函数。xmlDsoTicker()除了xmlFile参数以外,和initTicker()有相同的参数,因为XML文件已经被载入。xmlDsoTicker()检查变量counter(初始值为maxMsgs)是否小于maxMsgs-1。如果是,moveNext()方法指向tickerSet中下一个数据项。
HTML页面的BODY包含下面的代码:
<a href="" datasrc="#ticker" datafld="URL" class="tickerStyle"> <span datasrc="#ticker" datafld="message"></span> </a>
图1:定时器应用程序显示输出。
在这段代码中,<A>标记把XML文件的URL作为它的datafld。<SPAN>标记把XML文件的信息作为它的datafld。这个信息在<SPAN>元素中显示,然后整个信息可以通过这段信息相应的URL连接。
这样,<A>和<SPAN>元素包含下一个数据项(URL和信息)。在一段延迟以后,<A>和<SPAN>指向下一个数据。只要counter<maxMsgs-1(计数器每次递增),这个操作就会发生。如果counter<maxMsgs-1是假,计数器就被设置为0,然后指向tickerSet中的第一个数据项。
以上就是Web设计中如何使用XML数据源对象详细介绍的内容,更多相关内容请关注PHP中文网(www.php.cn)!

使用XML構建RSSfeed的步驟如下:1.創建根元素並設置版本;2.添加channel元素及其基本信息;3.添加條目(item)元素,包括標題、鏈接和描述;4.轉換XML結構為字符串並輸出。通過這些步驟,你可以從零開始創建一個有效的RSSfeed,並通過添加額外的元素如發布日期和作者信息來增強其功能。

創建RSS文檔的步驟如下:1.使用XML格式編寫,根元素為,包含元素。 2.在內添加、、等元素描述頻道信息。 3.添加元素,每個代表一個內容條目,包含、、、等。 4.可選地添加和元素,豐富內容。 5.確保XML格式正確,使用在線工具驗證,優化性能並保持內容更新。

XML在RSS中的核心作用是提供一種標準化和靈活的數據格式。 1.XML的結構和標記語言特性使其適合數據交換和存儲。 2.RSS利用XML創建標準化格式,方便內容共享。 3.XML在RSS中的應用包括定義feed內容的元素,如標題和發布日期。 4.優勢包括標準化和可擴展性,挑戰包括文件冗長和嚴格語法要求。 5.最佳實踐包括驗證XML有效性、保持簡潔、使用CDATA和定期更新。

rssfeedsarexmldocuments usedforcontentAggregation and distribution.totransformthemintoreadableContent:1)parsethethexmlusinglibrarieslibrariesliblarieslikeparserinparserinpython.2)andledifferentifferentrssssssssssssssssssssssssssssssssssssssssssssssersions andpotentionparsingrorS.3)

JSONFeed是一種基於JSON的RSS替代方案,其優勢在於簡潔性和易用性。 1)JSONFeed使用JSON格式,易於生成和解析。 2)它支持動態生成,適用於現代Web開發。 3)使用JSONFeed可以提升內容管理效率和用戶體驗。

如何構建、驗證和發布RSSfeeds? 1.構建:使用Python腳本生成RSSfeed,包含標題、鏈接、描述和發布日期。 2.驗證:使用FeedValidator.org或Python腳本檢查RSSfeed是否符合RSS2.0標準。 3.發布:將RSS文件上傳到服務器,或使用Flask動態生成並發布RSSfeed。通過這些步驟,你可以有效管理和分享內容。

確保XML/RSSfeeds安全性的方法包括:1.數據驗證,2.加密傳輸,3.訪問控制,4.日誌和監控。這些措施通過網絡安全協議、數據加密算法和訪問控制機制來保護數據的完整性和機密性。

XML是一種標記語言,用於存儲和傳輸數據,RSS是一種基於XML的格式,用於發布頻繁更新的內容。 1)XML通過標籤和屬性描述數據結構,2)RSS定義特定標籤發布和訂閱內容,3)使用Python的xml.etree.ElementTree模塊可以創建和解析XML,4)XPath表達式可查詢XML節點,5)feedparser庫可解析RSSfeed,6)常見錯誤包括標籤不匹配和編碼問題,可用xmllint驗證,7)使用SAX解析器處理大型XML文件可優化性能。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

WebStorm Mac版
好用的JavaScript開發工具

記事本++7.3.1
好用且免費的程式碼編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。