一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP教程 - ASP XML編程objXML.async = False

ASP XML編程objXML.async = False

2019-09-19 11:49asp教程網 ASP教程

XML數據組合進ASP應用程序的時候,需要做的第一件事是訪問XML文件的內容。

從技術上來說,在ASP環境中,讀入并管理XML文本的主要方法有三種: 
創建MSXML對象,并且將XML文檔載入DOM; 
使用服務器端嵌入(Server-Side Include,SSI); 
就如同訪問其他文本文件一樣,使用FileSystemObject來訪問XML文檔; 
第四種方法是在客戶端創建內置的數據島,有關的內容以后講解。 
一、使用DOM 
為了在ASP代碼中使用DOM,需要創建一個Microsoft XML分析器的實例,它像任何別的COM組件一樣被實例化,在頁面的開始處頊要增加幾行標準代碼。這些代碼創建一個分析器實例,加載XML文檔至DOM,并且將根元素(即文檔元素)設置為當前節點。 
‘Instatiate the XML Processor 
Set objXML = Server.CreateObject("Microsoft.XMLDOM") 
Load the XML Document 
objXML.load(Server.MapPath("mydata.xml") 
Set the Document Element 
Set objRootElement = objXML.documentElement 
在XML文檔被加載之前,還需要執行第四步,即設置validateOnParse屬性為True,這可確保被加載的文檔為有效的XML文檔。這可避免后面遇到的各種麻煩: 
Instatiate the XML Processor 
Set objXML = Server.CreateObject("Microsoft.XMLDOM") 
The processos should validate the document 
objXML.validateOnParse = True 
Load the XML Document 
objXML.load(Server.MapPath("mydata.xml") 
Set the Document Element 
Set objRootElement = objXML.documentElement 
最后,還有一個可選步驟,它也是出現在加載之前。它要求同步加載文件: 
objXML.async = false 
這說時加載并驗證一個相當大的文件需要占用一些時間。另一種替換方案是忽略這一步,允許非同步加載,這是缺省情況,一旦完成這些初始化步驟,XML文檔就被加載,并且做好了被處理的準備。DOM所有重要的功能都是可配置的。 
當然,就如同任何COM對象一樣,在使用完之后,請記住必須銷毀它: 
Set objXML = nothing 
二、服務器端嵌入 
服務器端嵌入可用于將XML文檔代碼插入ASP頁面。 
三、用ASP代碼處理XML的示例 
<HTML> 
<HEAD> 
</HEAD> 
<BODY> 
<% 
Dim sourceFile,source,rootElement,HTMLCode 
sourceFile = Request.ServerVariables("APPL_PHYSICAL_PATH") & "xml\contacts.xml" 
set source = Server.CreateObject("Microsoft.XMLDOM") 
source.async = false 
source.load sourceFile 
set rootElement = source.documentElement 
HTMLCode = HTMLCode & "<font size=4 face=verdana>" 
HTMLCode = HTMLCode & rootElement.childNodes(0).text 
HTMLCode = HTMLCode & "</font><p></p><font size=3 face=verdana><I>" 
HTMLCode = HTMLCode & rootElement.childNodes(0).text 
HTMLCode = HTMLCode & "</I></font><p></p><font size=3 face=verdana>" 
HTMLCode = HTMLCode & rootElement.childNodes(0).text 
HTMLCode = HTMLCode & "</font><p></p>" 
response.write(HTMLCode) 
set source = nothing 
%> 
</BODY> 
</HTML> 
contacts.xml 
<?xml version="1.0" ?> 
<CONTACT_INFO> 
<CONTACT> 
<NAME>JOHN</NAME> 
<PHONE>111-1111-111</PHONE> 
</CONTACT> 
<CONTACT> 
<NAME>SMITH</NAME> 
<PHONE>222-2222-222</PHONE> 
</CONTACT> 
<CONTACT> 
<NAME>MIKE</NAME> 
<PHONE>333-3333-333</PHONE> 
</CONTACT> 
</CONTACT_INFO> 
經XSL格式化的XML數據 
styleContact.asp 
<HTML> 
<BODY> 
<% 
sourceFile = server.mapPath("contact.xml") 
styleFile = server.mapPath("contact.xsl") 
set source = Server.CreateObject("Microsoft.XMLDOM") 
source.async = False 
source.load(sourceFile) 
set style = Server.CreateObject("Microsoft.XMLDOM") 
style.async = False 
style.load(styleFile) 
response.write(source.transformNode(style)) 
%> 
</BODY> 
</HTML> 
contact.xml 
<?xml version="1.0" ?> 
<?xml-stylesheet type="text/xsl" href="contact.xsl" ?> 
<CONTACT_INFO> 
<CONTACT> 
<NAME>ZHOU.ZF</NAME> 
<PHONE>11111111111</PHONE> 
</CONTACT> 
<CONTACT> 
<NAME>LISTEN</NAME> 
<PHONE>22222222222</PHONE> 
</CONTACT> 
<CONTACT> 
<NAME>BUBU</NAME> 
<PHONE>33333333333</PHONE> 
</CONTACT> 
</CONTACT_INFO> 
contact.xsl 
<?xml version="1.0" ?> 
<xsl:template xmlns:xsl="http://www.w3.org/TR/WD-xsl"> 
<HTML> 
<BODY> 
<xsl:for-each select="CONTACT_INFO/CONTACT"> 
<DIV> 
<xsl:value-of select="NAME"/> 
</DIV> 
</xsl:for-each> 
</BODY> 
</HTML> 
</xsl:template> 

其它示例: 
1、WEB鏈接 
<HTML> 
<BODY> 
<% 
Dim objXML, objRootElement, strLinkName, strLinkURL, strLinkTarget, sourceFile, i 
sourceFile = Request.ServerVariables("APPL_PHYSICAL_PATH") & "xml\Links.xml" 
set objXML = Server.CreateObject("Microsoft.XMLDOM") 
objXML.validateOnParse = True 
objXML.async = false 
objXML.load(sourceFile) 
set objRootElement = objXML.documentElement 
for i = 0 to objRootElement.childNodes.length-1 
strLinkName = objRootElement.childNodes.item(i).text 
strLinkURL = objRootElement.childNodes.item(i).getAttribute("url") 
strLinkTarget = objRootElement.childNodes.item(i).getAttribute("target") 
response.write("<a href=" & strLinkURL & " target=" & strLinkTarget & ">" & strLinkName & "</a><br>") 
next 
set objXML = nothing 
%> 
</BODY> 
</HTML> 
Links.xml 
<?xml version="1.0" ?> 
<relatedlinks> 
<link url="default0.asp" target="_blank">Front Page 0</link> 
<link url="default1.asp" target="_blank">Front Page 1</link> 
<link url="default2.asp" target="_blank">Front Page 2</link> 
<link url="default3.asp" target="_blank">Front Page 3</link> 
</relatedlinks> 
2、XML文件的生成 
gen_xml.asp 
<HTML> 
<HEAD> 
<META NAME="GENERATOR" Content="Microsoft Developer Studio"> 
<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1"> 
<TITLE>Generate XML</TITLE> 
</HEAD> 
<BODY> 
<% 
Create an empty root node for the document. 
Set rootNode = Server.CreateObject("AspXml.AspXml") 
rootNode.Encoding = "ISO-8859-1" 
rootNode.Standalone = "yes" 
rootNode.Tag = "table" 
for row = 1 to 10 
Set rowNode = rootNode.NewChild("row","") 
for col = 1 to 10 
Set colNode = rowNode.NewChild("column","("&col&","&row&")") 
next 
next 
rootNode.SaveXml(Server.MapPath("table.xml")) 
Set rootNode = Nothing 
%> 
</BODY> 
</HTML> 
3、向XML文件中追加結點 
addItem.asp 
<% 
If request.ServerVariables("REQUEST_METHOD")="POST" Then 
call writeXML 
Else 
call showForm 
End If 
Sub showForm 
%> 
<html> 
<body> 
Please enter the persons contact details 
<form action="addItem.asp" method="post"> 
Name: <input type="text" name="name"> Email: <input type="text" name="email"> 
<input type="submit" name="submit" value="Add"> 
</form> 
</body> 
</html> 
<% 
End Sub 
Sub writeXML 
find xml file path 
Dim strFilename,strXMLFile 
strFilename = "contacts.xml" 
strXMLFile=server.mapPath(strFilename) 
standard "create xml object" code 
set oXML = server.createObject("Microsoft.XMLDOM") 
oXML.async = False 
check file exists 
bitFileExists = oXML.load(strXMLFile) 
If bitFileExists Then 
tmpChildnodes = oXML.documentElement.childnodes.length - 1 
intCurrentRecord = tmpChildnodes + 1 
Else 
create xml 
oXML.appendChild(oXML.createProcessingInstruction("xml","version=""1.0""")) 
oXML.appendChild(oXML.createElement("contacts")) 
intCurrentRecord = 0 
End If 
create record 
set oXMLRec = oXML.createElement("contact") 
Create an id attribute 
Set oAtt = oXML.createAttribute("id") 
oAtt.Text = intCurrentRecord 
oXMLRec.setAttributeNode oAtt 
set remaining fields 
name 
oXMLRec.appendChild(oXML.createElement("name")) 
oXMLRec.childnodes(0).text = request.form("name") 
email address 
oXMLRec.appendChild(oXML.createElement("email")) 
oXMLRec.childnodes(1).text = request.Form("email") 
date stamp 
oXMLRec.appendChild(oXML.createElement("created")) 
oXMLRec.childnodes(2).text = now() 
write new record 
oXML.documentElement.appendChild(oXMLRec.cloneNode(True)) 
save file 
oXML.save strXMLFile 
redirect to xml file 
response.redirect(strFilename) 
oXML = nothing 
End Sub 
%> 
contacts.xml 
<?xml version="1.0"?> 
<CONTACT_INFO> 
<contact id="1"> 
<name>bubu</name> 
<email>[email protected]</email> 
<created>2003/04/29 9:26:51</created> 
</contact> 
<contact id="2"> 
<name>22222</name> 
<email>222222222</email> 
<created>2003-5-12 18:15:41</created> 
</contact> 
</CONTACT_INFO> 
4、留言薄 
<% 
username=request.form("username") 
if username<>"" then 
fromwhere =request.form("fromwhere") 
homepage =request.form("homepage") 
email =request.form("email") 
text =Server.URLEncode(request.form("text")) 
Posttime =now() 
sourceFile = "list.xml" 
strSourceFile = Server.MapPath(sourceFile) 
Set objXML = Server.CreateObject("Microsoft.XMLDOM") 
blnRet = objXML.load(strSourceFile) 
If blnRet Then 
Set objRootlist = objXML.documentElement 
if objRootlist.hasChildNodes then 
id = objRootlist.lastchild.firstchild.text+1 
else 
id=1 
end if 
Else 
objXML.appendChild(objXML.createProcessingInstruction("xml","version=""1.0""")) 
set objRootlist = objXML.createElement("NewList") 
objXML.appendChild(objRootlist) 
id = 1 
End If 
brstr=chr(13)&chr(10)&chr(9) 
XMLnode=brstr&"<list>"&brstr & _ 
"<id>"&id&"</id>"&brstr & _ 
"<username>"&username&"</username>"&brstr & _ 
"<fromwhere>"&fromwhere&"</fromwhere>"&brstr & _ 
"<Posttime>"&Posttime&"</Posttime>"&brstr & _ 
"<homepage>"&homepage&"</homepage>"&brstr & _ 
"<email>"&email&"</email>"&brstr & _ 
"<text>"&text&"</text>"&brstr & _ 
"</list>"&chr(13) 
set objXML2=Server.CreateObject("Microsoft.XMLDOM") 
objXML2.loadXML(XMLnode) 
set rootNewNode=objXML2.documentElement 
objRootlist.appendChild(rootNewNode) 
objXML.save(strSourceFile) 
set objXML=nothing 
set objXML2=nothing 
response.redirect(strSourceFile) 
end if 
%> 
<html> 
<head> 
<title>Untitled Document</title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<style type="text/css"> 
<!-- 
td { font-size: 9pt} 
--> 
</style> 
</head> 
<body bgcolor="#0099CC" text="#000000"> 
<table width="80%" border="0" cellspacing="1" cellpadding="4" align="center" bgcolor="#FFFFFF"> 
<form action="PostNew.asp" method="post" name="form1"> 
<tr bgcolor="#000000"> 
<td colspan="2"><font color="#FFFFFF">New Book</font></td> 
</tr> 
<tr bgcolor="#EFEFEF"> 
<td width="19%" align="right">Name:</td> 
<td width="81%"> 
<input type="text" name="username">** 
</td> 
</tr> 
<tr bgcolor="#EFEFEF"> 
<td width="19%" align="right">ComeFrom:</td> 
<td width="81%"> 
<input type="text" name="fromwhere" value="China"> 
</td> 
</tr> 
<tr bgcolor="#EFEFEF"> 
<td width="19%" align="right">WebSite:</td> 
<td width="81%"> 
<input type="text" name="homepage" value="http://"> 
</td> 
</tr> 
<tr bgcolor="#EFEFEF"> 
<td width="19%" align="right">Email:</td> 
<td width="81%"> 
<input type="text" name="email"> 
</td> 
</tr> 
<tr bgcolor="#EFEFEF"> 
<td width="19%" align="right" valign="top">Context:</td> 
<td width="81%"> 
<textarea name="text" cols="60" rows="10"></textarea> 
</td> 
</tr> 
<tr bgcolor="#EFEFEF"> 
<td width="19%" align="right"> </td> 
<td width="81%"> 
<input type="submit" name="Submit" value="Submit"> 
<input type="reset" name="Submit2" value="Reset"> 
</td> 
</tr> 
</form> 
</table> 
</body> 
</html> 
四、使用DOM生成XML總結 
了解XML文檔對象模型 
XML DOM包含四個主要對象:XMLDOMDocument, XMLDOMNode,XMLDOMNodeList和XMLDOMNamedNodeMap。同任何其它對象模型一樣,每個XML DOM對象有其自己的特性和方法。本文,我們將主要介紹XMLDOMDocument 和XMLDOMNode 對象。 
XMLDOMDocument對象 
XMLDOMDocument對象代表XML DOM層次中的頂層結點(請不要同XML文檔中的根結點混淆)。它是建立和操縱XML結構的基礎。為了創建XMLDOMDocument對象變量,請使用如下的CreateObject 命令: 
Set objXMLdoc = CreateObject("Microsoft.XMLDOM") 
表A:列出了在創建了XMLDOMDocument的對象后,我們可以得到的一些特性和方法。 
方法 描述 
CreateAttribute 創建新屬性 
CreateCDATASection 創建DATA 部分結點 
CreateComment 創建注釋結點 
CreateElement 使用指定名稱創建元素結點 
CreateEntityReference 創建實體參考對象 
CreateNode 創建結點 
CreateTextNode 創建文本結點 
Load 載入已有的 XML 文檔 
Save 保存XML 文檔 
特性 描述 
PreserveWhiteSpace 指示是否在XML文檔中顯示空格t 
ResolveExternals 解析名域,DTD和外部實體索引 
ValidateOnParse 指示解析器是否對文檔進行合法性檢查 
DocumentElement 返回XML 文檔的根結點 
設置運行選項 
正如你在表A中所看到的,只有創建了XMLDOMDocument 對象,你才可創建單個的XML結點。在做這個工作之前,你還可以設置XML文檔的解析運行條件,如果你打算直接生成XML文檔到瀏覽器時,就很有用處。 
運行選項可以讓你設置異步下載,提供文檔合法性檢查和保留空格,以及解析外部索引。為了防止異步下載,可設置asynch特性為False。如果打算用一行新字符代替空格,可設置PreserveWhiteSpace 特性為True。 ResolveExternals特性可防止解析引擎解析外部實體索引,文檔類型定義或者外部名域。 
1、創建結點 
XMLDOMDocument 對象提供了創建結點或者XMLDOMNode的兩種方法: CreateElement 和CreateNode。選擇其中哪一種方法,取決于你需要結點提供信息量的多少。當你使用CreateElement 方法時,只要提供結點名稱,如 
Set objXMLroot = objXMLdoc.CreateElement("ORDER_STATUS") 
當使用CreateNode 方法時,你要指定結點類型,結點名稱和相關名域。(XML名域可以讓你擇同一文檔中用同一名稱創建多個XML元素) 例如,如果要使用CreateNode方法,你可寫出如下代碼: 
Set objXMLroot = objXMLdoc.createNode("element","ORDER_STATUS","Space1") 
一旦創建了結點,你須把它添加進XML文檔中。這就要用AppendChild 方法,例如,繼續上面的例子,你可以寫出: 
objXMLdoc.AppendChild(objXMLroot) 
該語句創建了XML根結點。 
除了AppendChild方法外,XMLDOMNode 對象也具有其它三個控制XML結點的方法: ReplaceChild, RemoveChild和InsertBefore 
2、對結點的屬性賦值 
一旦創建了結點,還要對其屬性賦值,如獨立的標識符,或者特性值。你要用到SetAttribute方法。該方法接收兩個參數— 屬性名和屬性值。例如,下列代碼創建了屬性名SHIPPING_DATASOURCE 和屬性值NORTH_ATLANTIC_SHIPPING: 
objXMLroot.SetAttribute "SHIPPING_DATASOURCE","NORTH_ATLANTIC_SHIPPING" 
此時,我們生成了一個XML文檔,SetAttributes方法創建了結點屬性 。 
3、加入子結點 
要創建子結點,你可以使用我們前面介紹的CreateElement或者 CreateNode 方法,然后把它們添加到合適的父母結點中。例如,假設,我們要創建稱為PUBLISHER_DISCLAIMER的XML結點。為了做到這一點,我們把該結點附加到文檔的根結點中,代碼如下: 
Set objXMLChildTestNode = objXMLdoc.createNode("element","PUBLISHER_DISCLAIMER","") 
objXMLdoc.DocumentElement.appendChild(objXMLChildTestNode) 
注意:我們使用了XMLDOMDocument的 DocumentElement 特性來把新結點添加到XML文檔的根結點中,要添加子結點,你只需把它們添加到父母結點中。 
4、給結點賦值 
一旦創建完所有的結點,你將需要給它們賦值。那是XML最關鍵的步驟。要做到這點,你同平常一樣,創建一個結點,然后對該結點的TEXT屬性賦值。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 男人影院天堂网址 | japanhd粗暴video | 午夜欧美精品 | 高清视频在线观看+免费 | 欧美成人中文字幕在线看 | 娇妻在床上迎合男人 | video one 中国按摩 | 白丝vk丨tk失禁 | 婚前试爱全集免费观看 | 男神插曲女生动漫完整版动漫 | bban女同系列022在线观看 | 性色AV乱码一区二区三区视频 | 114毛片免费观看网站 | 夫承子液by免费阅读 | 亚洲欧美国产精品久久久 | 国产精品最新 | 成人免费在线视频 | 日本xxxx69hd| 日韩精品视频在线播放 | 91国内精品久久久久影院优播 | 1024免费永久福利视频 | 精品国产剧情在线观看 | 十大网站免费货源 | 天天欲色成人综合网站 | 亚洲高清一区二区三区久久 | 国产成人亚洲综合网站不卡 | 欧美精品综合一区二区三区 | 天天干夜夜添 | 激情小视频网站 | 成年人在线播放视频 | 欧美日一级片 | 日本在线一区二区 | 亚洲 日韩 国产 制服 在线 | 3d动漫美女被吸乳羞羞有 | 成 人 免费 小说在线观看 | 免费欧美日韩 | chinese老头和老太交hd | 亚洲国产99在线精品一区二区 | 青青91| 日本人啪啪| 男女乱淫真视频播放网站 |