我有一个如下所示的XML:
<data name='dat1'>
<row name='row1'>
<orange>blah</orange>
<red>more blah</red>
</row>
</data>
我通过HTTP帖子传递此XML。在目标ASP页面上,我想检测<row></row>
中列的名称。我目前可以使用它来获取我知道列名称的列的值:
Set dataRowList = xmlDoc.GetElementsByTagName("row")
Dim datarow
For Each datarow In dataRowList
name = datarow.GetAttribute("name")
If InStr(1, name, "row") > 0 Then
Dim param1 : param1 = datarow.SelectSingleNode("orange").Text
End If
Next
结果是列&#34; orange&#34;的值。但我希望我的代码根据所请求的XML动态地找出列名。有什么想法吗?
答案 0 :(得分:3)
使用XPath表达式选择<row>
个节点,然后枚举这些节点的子节点。子节点的名称可以通过NodeName
属性获得。
For Each row In xmlDoc.SelectNodes("//row[contains(@name, 'row')]")
For Each col In row.ChildNodes
WScript.Echo col.NodeName
Next
Next