ASP XML编程objXML.async = False

来源:asp之家 时间:2011-04-21 10:55:00 

从技术上来说,在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> 

标签:ASP,XML,objXML,async
0
投稿

猜你喜欢

  • php中json 序列化为 [] 的弊端

    2023-05-25 00:14:30
  • HTML 5 V.S. XHTML 2:HTML5倍受青睐,XHTML2处境尴尬

    2009-06-08 12:57:00
  • ACCESS数据库转换MYSQL数据库的软件

    2007-09-20 20:06:00
  • 用SQL统计SQLServe表存储空间大小的代码

    2012-06-06 19:52:22
  • 如何正确合理的建立MYSQL数据库索引

    2010-10-25 20:08:00
  • asp如何刪除客户端的Cookies?

    2010-05-18 18:25:00
  • 文章关键字替换带链接需要注意的两个问题

    2010-02-25 12:18:00
  • 解决IE6、IE7、Firefox兼容最简单的CSS Hack

    2007-10-14 10:51:00
  • SEM之医疗网站跳出率 逼迫访客跳出网站的六宗罪

    2012-03-05 20:13:36
  • Opera下的max-width BUG

    2010-06-26 12:51:00
  • 注册表单之电子邮箱

    2008-08-19 17:58:00
  • 细化解析:怎样把你的MySQL完全中文化

    2008-12-19 17:48:00
  • JavaScript Length 字符长度函数

    2008-12-12 12:29:00
  • DW MX 的快键一览表

    2009-07-21 12:47:00
  • 轻松搞定IE的CSS制作网页技巧3则

    2009-08-14 20:32:00
  • JavaScript奇怪的比较——隐式类型转换

    2009-02-15 13:06:00
  • 再谈 Web 字体的现状与未来[译]

    2009-11-24 13:55:00
  • asp如何向客户端发送提示“出错信息”?

    2010-06-09 18:50:00
  • JavaScript控制flash操作 兼容IE FF[译]

    2009-11-29 16:28:00
  • 数据库手边系列:SQL Server数据表信息

    2009-05-24 18:26:00
  • asp之家 网络编程 m.aspxhome.com