asp怎样通过Msxml2.DOMDocument或Microsoft.XMLDOM模糊查找xml
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp怎样通过Msxml2.DOMDocument或Microsoft.XMLDOM模糊查找xml相关的知识,希望对你有一定的参考价值。
asp在服务端(用vbs)调用xml文件根据接受到的参数查找并循环显示出所搜到的内容.
强调:
1、不要在输出页面中显示xml格式的内容
2、不要在输出页面中使用xsl和javascript
3、不要有mssql、access、mysql等数据库
4、不要使用FSO操作xml,只能通过vbs调用Msxml2.DOMDocument或Microsoft.XMLDOM来处理。
cd_catalog.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <!-- Edited with XML Spy v2007 (http://www.altova.com)
-->
- <CATALOG>
- <CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
- <CD>
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
- <CD>
<TITLE>Greatest Hits</TITLE>
<ARTIST>Dolly Parton</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>RCA</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1982</YEAR>
</CD>
- <CD>
<TITLE>Still got the blues</TITLE>
<ARTIST>Gary Moore</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>Virgin records</COMPANY>
<PRICE>10.20</PRICE>
<YEAR>1990</YEAR>
</CD>
- <CD>
<TITLE>Eros</TITLE>
<ARTIST>Eros Ramazzotti</ARTIST>
<COUNTRY>EU</COUNTRY>
<COMPANY>BMG</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1997</YEAR>
</CD>
- <CD>
<TITLE>One night only</TITLE>
<ARTIST>Bee Gees</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>Polydor</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1998</YEAR>
</CD>
- <CD>
<TITLE>Sylvias Mother</TITLE>
<ARTIST>Dr.Hook</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS</COMPANY>
<PRICE>8.10</PRICE>
<YEAR>1973</YEAR>
</CD>
- <CD>
<TITLE>Maggie May</TITLE>
<ARTIST>Rod Stewart</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>Pickwick</COMPANY>
<PRICE>8.50</PRICE>
<YEAR>1990</YEAR>
</CD>
- <CD>
<TITLE>Romanza</TITLE>
<ARTIST>Andrea Bocelli</ARTIST>
<COUNTRY>EU</COUNTRY>
<COMPANY>Polydor</COMPANY>
<PRICE>10.80</PRICE>
<YEAR>1996</YEAR>
</CD>
- <CD>
<TITLE>When a man loves a woman</TITLE>
<ARTIST>Percy Sledge</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Atlantic</COMPANY>
<PRICE>8.70</PRICE>
<YEAR>1987</YEAR>
</CD>
- <CD>
<TITLE>Black angel</TITLE>
<ARTIST>Savage Rose</ARTIST>
<COUNTRY>EU</COUNTRY>
<COMPANY>Mega</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1995</YEAR>
</CD>
- <CD>
<TITLE>1999 Grammy Nominees</TITLE>
<ARTIST>Many</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Grammy</COMPANY>
<PRICE>10.20</PRICE>
<YEAR>1999</YEAR>
</CD>
- <CD>
<TITLE>For the good times</TITLE>
<ARTIST>Kenny Rogers</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>Mucik Master</COMPANY>
<PRICE>8.70</PRICE>
<YEAR>1995</YEAR>
</CD>
- <CD>
<TITLE>Big Willie style</TITLE>
<ARTIST>Will Smith</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1997</YEAR>
</CD>
- <CD>
<TITLE>Tupelo Honey</TITLE>
<ARTIST>Van Morrison</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>Polydor</COMPANY>
<PRICE>8.20</PRICE>
<YEAR>1971</YEAR>
</CD>
- <CD>
<TITLE>The very best of</TITLE>
<ARTIST>Cat Stevens</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>Island</COMPANY>
<PRICE>8.90</PRICE>
<YEAR>1990</YEAR>
</CD>
- <CD>
<TITLE>Stop</TITLE>
<ARTIST>Sam Brown</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>A and M</COMPANY>
<PRICE>8.90</PRICE>
<YEAR>1988</YEAR>
</CD>
- <CD>
<TITLE>Bridge of Spies</TITLE>
<ARTIST>T'Pau</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>Siren</COMPANY>
<PRICE>7.90</PRICE>
<YEAR>1987</YEAR>
</CD>
- <CD>
<TITLE>Private Dancer</TITLE>
<ARTIST>Tina Turner</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>Capitol</COMPANY>
<PRICE>8.90</PRICE>
<YEAR>1983</YEAR>
</CD>
- <CD>
<TITLE>Midt om natten</TITLE>
<ARTIST>Kim Larsen</ARTIST>
<COUNTRY>EU</COUNTRY>
<COMPANY>Medley</COMPANY>
<PRICE>7.80</PRICE>
<YEAR>1983</YEAR>
</CD>
- <CD>
<TITLE>Pavarotti Gala Concert</TITLE>
<ARTIST>Luciano Pavarotti</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>DECCA</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1991</YEAR>
</CD>
- <CD>
<TITLE>The dock of the bay</TITLE>
<ARTIST>Otis Redding</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Atlantic</COMPANY>
<PRICE>7.90</PRICE>
<YEAR>1987</YEAR>
</CD>
- <CD>
<TITLE>Picture book</TITLE>
<ARTIST>Simply Red</ARTIST>
<COUNTRY>EU</COUNTRY>
<COMPANY>Elektra</COMPANY>
<PRICE>7.20</PRICE>
<YEAR>1985</YEAR>
</CD>
- <CD>
<TITLE>Red</TITLE>
<ARTIST>The Communards</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>London</COMPANY>
<PRICE>7.80</PRICE>
<YEAR>1987</YEAR>
</CD>
- <CD>
<TITLE>Unchain my heart</TITLE>
<ARTIST>Joe Cocker</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>EMI</COMPANY>
<PRICE>8.20</PRICE>
<YEAR>1987</YEAR>
</CD>
</CATALOG>
调用显示代码,名字随便:
<html>
<body>
<script type="text/javascript">
var xmlDoc=null;
if (window.ActiveXObject)
// code for IE
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
else if (document.implementation.createDocument)
// code for Mozilla, Firefox, Opera, etc.
xmlDoc=document.implementation.createDocument("","",null);
else
alert('Your browser cannot handle this script');
if (xmlDoc!=null)
xmlDoc.async=false;
xmlDoc.load("cd_catalog.xml");
document.write("<table border='1'>");
var x=xmlDoc.getElementsByTagName("CD");
for (i=0;i<x.length;i++)
document.write("<tr>");
document.write("<td>");
document.write(
x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue);
document.write("</td>");
document.write("<td>");
document.write(
x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue);
document.write("</td>");
document.write("</tr>");
document.write("</table>");
</script>
</body>
</html>
把js换成vbs就可以了。
经典 ASP RSS 阅读器无法在内部服务器上运行
【中文标题】经典 ASP RSS 阅读器无法在内部服务器上运行【英文标题】:Classic ASP RSS Reader not working on internal server 【发布时间】:2009-03-19 20:56:51 【问题描述】:我有一个用 Classic ASP 编写的基于 Web 的 RSS 阅读器,我过去曾在公共项目中成功使用过它。但是,它不想在这个内部项目上合作。
相关代码:
set xmlDoc = createObject("Msxml.DOMDocument")
xmlDoc.async = false
xmlDoc.setProperty "ServerHTTPRequest", true
xmlDoc.load(extURL)
If (xmlDoc.parseError.errorCode <> 0) then
Response.Write "XML error #" & xmlDoc.parseError.errorCode & ": " & xmlDoc.parseError.reason
Else
'Not pertinent as it never gets here...
End If
我收到以下错误:
XML error #-2146697208: The download of the specified resource has failed.
它在其他地方工作得很好,只是不适用于这个特定的项目。它是一个内部项目,所以我无法链接到它。饲料格式正确,非常有趣。
不,我不能放弃它并使用编程语言 [在此处插入反 CLASP 咆哮]。如果这就是您要添加的全部内容,请不要发布。
它在 Server 2003 上运行,如果我需要查找任何配置信息等,我确实可以访问该服务器。
编辑 - 回答几个问题:
我暂时使用 extURL 作为同一服务器上的页面对此进行了测试。 我已将 URL 手动输入到 IE6 和 IE7(根据公司政策没有 Fx),它可以正常加载。 我已经通过家中的验证器运行生成的 RSS 提要,并且验证正常。 我保存了生成的 XML 文件并尝试加载它,但得到了同样的错误。 可能应该早点提到这一点,但由于我无法与另一台服务器进行测试,我正在另一个端口上运行测试站点 - http://subdomain.maindomain.com:5150/rss.asp 我发布的所有其他内容仍然适用。最后一个随机想法:我确实打开了基本身份验证,因此我可以根据 NT Logon 等限制对站点某些部分的访问。这会是问题吗?我无法将其关闭,因为这会否定某些安全代码...
谢谢各位。 :)
再次编辑 - 原来是身份验证导致了问题。部分原因是食物链上游的某个人更改了一些组策略,部分原因是我自己对作为服务器管理员的新角色(除了作为开发人员)缺乏经验。
【问题讨论】:
【参考方案1】:此时我会检查服务器。
-
验证它发送的内容类型是 text/xml -- 您可以通过在 Firefox 中加载您的 extURL 变量值来做到这一点
尝试将文件下载到磁盘并重新编写代码以从磁盘读取文件。这行得通吗?
在您回答这些问题后更新:
我确实启用了基本身份验证 开所以我可以限制访问某些 基于 NT Logon 的部分网站, 等等。这会是问题吗?
嗯,是的!明确地。您的 ASP 脚本无法在正在运行的身份验证对话框中输入您的用户名和密码,因此它永远无法下载您的资源。
但是您还说您将 xml 放在本地文件中并修改了代码以加载它。如果你得到相同的错误,那么它绝对是 XML 的格式(一个坏字符,或者没有根元素,或者其他奇怪的东西)......但是你说 IE 可以打开它对吗?
一些截图怎么样?
【讨论】:
这是在更全局级别上完成的身份验证和一些更改。谢谢。 :)【参考方案2】:您能否确保可以通过浏览器或 ping 从服务器访问外部 URL?错误表明下载失败,所以这是我要检查的第一件事。
【讨论】:
以上是关于asp怎样通过Msxml2.DOMDocument或Microsoft.XMLDOM模糊查找xml的主要内容,如果未能解决你的问题,请参考以下文章
生成跨浏览器的Javascript的DomDocument对象。