获取XML列的名称

时间:2017-10-24 19:00:44

标签: xml web-services vbscript asp-classic

我有一个如下所示的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动态地找出列名。有什么想法吗?

1 个答案:

答案 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