XML / ASP:如何获取空元素的属性值

时间:2013-04-21 15:56:57

标签: xml asp-classic

我根本不习惯使用XML,所以这似乎是一个愚蠢的问题。我有一个xml文档,总是这样形成:

<lists>
  <list subscriber_count="5048" display_name="" name="GiNsubs" id="705381"/>
</lists>

我需要在空元素'list'中获取'name'属性的值。由于它是空的,我尝试过的任何东西都不能将'list'元素作为对象,所以我可以在它上面使用GetAttribute。我已经尝试过GetElementbyTagName,SelectSingleNode,甚至是FirstChild,但似乎没有任何东西可以将'list'元素作为节点。作为参考,我的代码目前如下:

valid = "No"
Set xmldoc = Server.CreateObject("Microsoft.XMLDOM")
Set objLst = Server.CreateObject("Microsoft.XMLDOM")
    xmldoc.async = false
    xmldoc.Load ("{XML document location}")

Set objLst = xmldoc.selectsinglenode("list")
if objLst.GetAttribute("name") = "GiNsubs" then
  valid = "Yes"
end if

当前产生的错误是“GetAttribute”行上的“Object required”。

感谢任何帮助。

哦,顺便说一句,这个XML文档来自API,因此改变XML格式并不是一种选择。

1 个答案:

答案 0 :(得分:0)

当我尝试时,以下工作

<%
valid = "no"

Set xmldoc = Server.CreateObject("Microsoft.XMLDOM")
xmldoc.setProperty "ServerHTTPRequest", True
xmldoc.async = False
xmldoc.validateOnParse = False
'stop 'uncomment to trigger a debugger break here (if you're setup for server-side debugging)
xmldoc.Load "http://domain/subfolder/deleteme.xml" 'add your URL here

xmlDoc.setProperty "SelectionLanguage", "XPath"
Set objLst = xmldoc.selectsinglenode("lists/list")
If objLst.GetAttribute("name") = "GiNsubs" Then
  valid = "Yes"
End If
%>
<html>
<head>
<title>XML XPath Test</title>
</head>
<body>
    <%=Valid %>     
</body>
</html>