gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 09:21:10 25 4
gpt4 key购买 nike

我有一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com