xml 个元素中节点很少存在

Infrequent existence of node in xml elements

 <ObjectArrayToXml xmlns="http://www.something.com/">
      <itemslist>
        <Size>18</Size>
        <ItemInfo>
          <Pass>5225</Pass>
          <AgentName>aaaaaa</AgentName>
          <Document>6763</Document>
        </ItemInfo>
        <ItemInfo>
          <Pass>1223</Pass>
          <Document>77755</Document>
**here the tag of AgentName will be missing
        </ItemInfo>
        <ItemInfo>
          <Pass>45344</Pass>
          <AgentName>bbbbbbb</AgentName>
          <Document>22234</Document>
        </ItemInfo>
      </itemslist>
    </ObjectArrayToXml>

我们得到以上结构,每个项目的所有 3 个标签 Pass、AgentName、Document 超过 4 年 我们一直在像这样成功地解析和打印它:

Set NodeList = xmlDoc.documentElement.selectNodes("//ObjectArrayToXml/itemslist/ItemInfo")
     For Each Node In NodeList
response.write Node.selectSingleNode("Pass").text
response.write Node.selectSingleNode("AgentName").text
response.write Node.selectSingleNode("Document").text   
     Next  

xml 的结构已更改,现在我们并不总能获得 AgentName 标签 - 对于某些项目,它可能根本不会出现。 我现在需要检查每个项目是否存在标签,然后我写了这段代码:

set xxx = xmlDoc.selectSingleNode("//AgentName")
If Not xxx Is Nothing Then
response.write Node.selectSingleNode("AgentName").text
End If

如果所有项目都有此标签或所有项目都没有此标签,则效果很好。但是一旦某些项目有此标签而其他项目则没有然后页面崩溃并且我给出 500 错误。 我意识到 xmlDoc.selectSingleNode("//AgentName") 必须只查看第一个项目并假设所有其余项目都具有相同的标签,而不是检查每个项目是否存在 AgentName 标签。 我可能不对,你能告诉我如何检查每个项目中是否存在这个标签吗?

在每次迭代中检查当前 NodeAgentName,在 For Each 循环中尝试这样的事情:

set agentName = Node.selectSingleNode("AgentName")
If Not agentName Is Nothing Then
    response.write agentName.text
End If