xml - 经典 ASP 循环遍历 XML 以查找并显示一个节点的详细信息

标签 xml vbscript asp-classic

我有一个 XML 文件,其中包含有关各个用户的详细信息。当他们访问网页时,我想找到他们的节点并显示相关信息。我一直在尝试此处找到的几个示例代码,但有一些方法或属性我不知道如何访问。

这是 XML:

<?xml version="1.0" encoding="UTF-8"?>
<data>
  <user id="001" name="Maria">
    <godate>2015-01-01</godate>
    <serials>
      <serial>AA-12345-1</serial>
    </serials>
  </user>
  <user id="002" name="Domingo">
    <godate>2015-02-02</godate>
    <serials>
      <serial>BB-12345-1</serial>
      <serial>BB-12345-2</serial>
    </serials>
  </user>
  <user id="003" name="Michael">
    <godate>2015-03-03</godate>
    <serials>
      <serial>CC-12345-1</serial>
      <serial>CC-12345-2</serial>
      <serial>CC-12345-3</serial>
    </serials>
  </user>
</data>

我需要根据ID属性找到一个节点,然后显示godate的值及其序列号的值(1到n)。因此,对于 Domingo,输出应显示:

出发日期:2015-02-02
系列1:BB-12345-1
系列 2:BB-12345-2

到目前为止,我能做到的最接近的是显示所有 godate 值和所有序列值,但我不知道如何将结果限制为一个用户(基于 ID)并仅显示该用户的 godate 和连续剧。

这是我到目前为止的 ASP 代码:

<%
    Set objXMLDoc = CreateObject("Microsoft.XMLDOM") 
    objXMLDoc.async = False 
    objXMLDoc.load(Server.MapPath("data.xml"))

    Set Root = objXMLDoc.documentElement
    Set NodeList = Root.getElementsByTagName("user")

    For i = 0 to NodeList.length -1 
        Set GoDate = objXMLDoc.getElementsByTagName("godate")(i)
        response.write "Go Date: " & godate.text & "<br>"
        Set Serials = objXMLDoc.getElementsByTagName("serials")(i)
        response.write "Serials: " & serials.text & "<br>"
    Next
%>

如何找到 ID 属性,然后只获取该节点的数据?

最佳答案

使用 XPath

Set objXMLDoc = CreateObject("Microsoft.XMLDOM") 
objXMLDoc.async = False 
objXMLDoc.load(Server.MapPath("data.xml"))
objXMLDoc.setProperty "SelectionLanguage", "XPath"

Dim id 
id = "001"
Dim user
Set user = objXMLDoc.selectSingleNode("//user[@id = '" & id & "']")
goDate = user.selectSingleNode("godate").text
'output goDate here
For Each serial In user.selectNodes("serials/serial")
  s = serial.text
  'output s here
Next

关于xml - 经典 ASP 循环遍历 XML 以查找并显示一个节点的详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30506444/

相关文章:

c# - 从 XML 文档中获取值到字符串数组

java - 如何保护 javax.xml.transform.TransformerFactory 免受 XML 外部攻击

asp.net - VbScript ASP : checking checkbox

ajax 调用后的 Javascript 目标

events - 搜索VB6代码

在 C 中更改/转换 xmlChar 的类型

java - 无法在 Java 中使用 Jaxb 仅提取选定的标签值

excel - 如果没有安装 AddIns,则无法访问 Excel 的 Application.ComAddIns 属性

vbscript - 捕获VBS objshell.运行错误

Session.Timeout 在 ASP Classic/IIS 中无法正常工作