不使用XSL从ASP查询xml

不使用XSL从ASP查询xml,xml,asp-classic,Xml,Asp Classic,我有一些非常简单的XML: <properties> <property> <name>BobFish</name> <explaination>Bob is a fish.</explaination> </property> <property> <name>DaveFish</name> <explaination>Dave i

我有一些非常简单的XML:

<properties>
<property>
    <name>BobFish</name>
    <explaination>Bob is a fish.</explaination>
</property>
<property>
    <name>DaveFish</name>
    <explaination>Dave is a fish.</explaination>
</property>
这是我迄今为止所拥有的功能:

Function GetExplaination(strXMLFile, strName)

 'Declare local variables
 Dim objXML
 Dim objNode

 set objXML = Server.CreateObject("Microsoft.XMLDOM")
 objXML.load(strXMLFile)
 Set objNode = objXML.SelectSingleNode("properties/property[name='" & strName & "']")

    GetExplaination = "Nothing Yet"

End Function

所以我有包含我需要的数据的objNode。如何从中提取“Explaination”字段?

首先向解释节点添加一个路径,以获取该路径,而不是整个属性节点

Set objNode = objXML.SelectSingleNode("properties/property[name='" & strName & "']/explanation")
接下来,返回节点的innertext以获取您要查找的文本

GetExplaination = objNode.Text

首先将路径添加到解释节点,以获取该路径,而不是整个属性节点

Set objNode = objXML.SelectSingleNode("properties/property[name='" & strName & "']/explanation")
接下来,返回节点的innertext以获取您要查找的文本

GetExplaination = objNode.Text

我不建议每次查找单个属性时都加载文档。提前加载和解析文档,并将文档引用传递给函数,而不是文件路径

我不建议每次查找单个属性时都加载文档。提前加载和解析文档,并将文档引用传递给函数,而不是文件路径

Response.Write GetExplaination("Fish.xml", "DaveFish")