65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 XML 数据进行 ASP 的归档检索解决方案

starIconstarIconstarIconemptyStarIconemptyStarIcon

3.00/5 (1投票)

2006 年 10 月 10 日

CPOL
viewsIcon

26329

downloadIcon

171

使用列索引从 XML 中检索数据。

引言

这个归档检索解决方案适用于不使用任何数据库,而是使用 XML 数据源的应用程序。 在速度方面,我可以肯定地说 XSLT 在数据处理方面是最好的。 在本文中,我描述了该检索解决方案如何使用 ASP 工作,并调用一个访问 XML 文件的 XSLT 程序。 这是一个简单的原型,让您了解 XSLT 如何与 ASP 应用程序接口。

Using the Code

只需将源代码文件添加到或复制到 wwwroot 文件夹(IIS 根文件夹)中。 然后,您可以从浏览器调用它来访问该文件。

  1. search.asp 添加到为归档程序创建的文件夹中。 这包含允许输入查询的 ASP 代码。
  2. ' Source file '
    xslFile = "general.xsl"
    xmlFile = "test.xml"
    
    Set xslDoc = Server.CreateObject("MSXML2.FreeThreadedDOMDocument")
    xslDoc.async = false
    
    xslDoc.load(Server.MapPath(xslFile))
    
    Set xmlDoc = Server.CreateObject("MSXML2.DOMDocument")
    xmlDoc.async = false
    xmlDoc.load(Server.MapPath(xmlFile))
    
    'This is the critical widget, a compliled XSL template'
    Set myTemplate = Server.CreateObject("MSXML2.XSLTemplate")
    myTemplate.stylesheet = xslDoc
    
    Set myProc = myTemplate.createProcessor
    myProc.input = xmlDoc
    
    myProc.transform
    Response.Write(myProc.output)
  3. general.xsl 添加为 XML 文件上的查询语句。
  4. <xsl:for-each select="//HAWB[@HawbNo=$p_hawb]">
     <tr>
    <td><xsl:value-of select="IDNO"/></td>      
        <td><xsl:value-of select="SHIPDATE"/></td>
     <td><xsl:value-of select="DECLNO"/></td>
        <td><xsl:value-of select="CONSCOM"/></td>
        <td><xsl:value-of select="SHIPCOM"/></td>
     </tr>
    </xsl:for-each> 
  5. test.xml 添加为以 XML 格式格式化的测试数据。
  6. <?xml version="1.0" encoding="ISO-8859-1" ?>
    <DATALOG>
     <HAWB HawbNo="815710000000">
       <IDNO>AA000003285001</IDNO>
       <DECLNO>182106240</DECLNO>
       <SHIPDATE>1/1/1998</SHIPDATE>
       <CONSCOM>CONSIGNEE COMPANY 1 Inc </CONSCOM>
       <SHIPCOM>SHIPPER COMPANY 1 Inc</SHIPCOM>
     </HAWB>
     <HAWB HawbNo="815710000001">
       <IDNO>AA000003285002</IDNO>
       <DECLNO>182106241</DECLNO>
       <SHIPDATE>1/1/1998</SHIPDATE>
       <CONSCOM>CONSIGNEE COMPANY 2 Inc </CONSCOM>
       <SHIPCOM>SHIPPER COMPANY 2 Inc</SHIPCOM>
     </HAWB>
     <HAWB HawbNo="815710000002">
       <IDNO>AA000003285003</IDNO>
       <DECLNO>182106242</DECLNO>
       <SHIPDATE>1/1/1998</SHIPDATE>
       <CONSCOM>CONSIGNEE COMPANY 3 Inc </CONSCOM>
       <SHIPCOM>SHIPPER COMPANY 3 Inc</SHIPCOM>
     </HAWB>
    </DATALOG>
© . All rights reserved.