页面

2009年3月7日

如何在客户端的隐藏 HTML 元素中保持服务器端 XML

概要
要在客户端的隐藏 HTML 元素中保持服务器端 XML,并在客户端脚本中访问它,可以结合使用服务器端 Active Server Page (ASP) 和客户端脚本。本文包含的代码示例阐释了如何实现此过程。 
回到顶端

更多信息
常见的编程要求是在客户端 HTML 元素中保持服务器端 XML,以便客户端脚本能够访问 XML。一种方法是在客户端 HTML 中使用 XMLData Source 对象 (DSO) 来引用并存储 XML 数据。不过,这种方法不提供跨浏览器解决方案,因为 XML DSO 是 Internet Explorer 特定的对象。

另外一种方法是在 < type="HIDDEN"> HTML 元素中使用标准 HTML 保持 XML。然后可以在客户端脚本中使用隐藏 HTML 元素的 Value 属性访问该元素中保持的 XML。然后,客户端脚本可以运行自定义代码来处理 XML(例如,将 XML 加载到客户端 XML Document Object Model 对象的实例中,然后将 XML 保持到磁盘上)。 
回到顶端

分步示例
如果已在并列模式下安装了较新的 MSXML 版本,那么要使用该特定版本运行示例代码,必须显式使用该版本的 GUID 或 ProgID。例如,MSXML 第 4 版仅在并列模式下安装。请参考以下 Microsoft 知识库文章,了解使用 MSXML 4.0 分析器运行示例代码需要更改哪些代码:Q305019 INFO: MSXML 4.0 Specific GUIDs and ProgIds(INFO:MSXML 4.0 特定的 GUID 和 ProgId)。

例如,在下面的代码中,您将使用以下内容创建对象: 
Set clientSideXMLDoc = CreateObject("MSXML2.DomDocument.4.0") 
和 
Set serverSideXMLDoc = Server.CreateObject("MSXML2.DomDocument.4.0") 
1. 在“记事本”中,创建一个名为 Books.xml 的新 XML 文档,并粘贴如下格式正确的 XML:< ?xml version="1.0"?>
 <> 
    < qty="10">
        <>Beginning XML< /Title>       
    < /Book>
    < qty="2">
       <>Mastering XML< /Title>       
   < /Book>
< /Books>
 
2. 将 Books.xml 保存在某个 Microsoft Internet Information Server (IIS) 虚拟目录中。 
3. 在“记事本”中,创建一个名为 LoadHiddenXML.asp 的新 ASP 页,并粘贴如下代码:<>

<>
   < language="VBScript">
    Sub btnXML_onClick()
       Dim clientSideXMLDoc
       Set clientSideXMLDoc = CreateObject("Microsoft.XMLDOM")
       clientSideXMLDoc.loadxml form1.txtXML.value
       Msgbox clientSideXMLDoc.xml 
    End Sub 
   < /SCRIPT>
< /HEAD>

<>
< %
     Dim serverSideXMLDoc
     Set serverSideXMLDoc = Server.CreateObject("Microsoft.XMLDOM")
     serverSideXMLDoc.load Server.MapPath("books.xml")   
%>


< id="form1" method="POST" action="hiddenxml.asp"> 
 < id="'txtXML'" name="'txtXML'" type="'hidden'" value="'<">'> 
 < type="Button" id="btnXML" value="Display Hidden XML">  
< /FORM>

< /BODY>
< /HTML>
 
4. 将 LoadHiddenXML.asp 保存在 Books.xml 所在的同一 IIS 虚拟目录中。 
5. ASP 代码包含将 Books.xml 的内容加载到 Microsoft XML (MSXML) Document Object Model (DOM) 的实例中的服务器端脚本。然后,加载的 XML 被指定为名为 txtXML 的隐藏 HTML 元素的值。

打开 Internet Explorer,浏览到 hiddenxml.asp。出现该页后,单击Display Hidden XML(显示隐藏的 XML)加载并显示服务器端 ASP 脚本分配给 txtXML 隐藏元素的 XML(使用客户端 MSXML DOM 对象)。 

没有评论: