Dexter: Verständnisfrage zu Nodes

Beitrag lesen

Hallo,

ich habe nun zu meinem Problem zu meinem Beitrag "Brauche Hilfe für Summenfunktion bei xsl" weiter unten im XSL Bereich eine Lösung gefunden. Nur habe ich eine Verständnisfrage, wie DOM Nodes speziell Childnodes interpretiert.

Folgender Sachverhalt:

<root>
  <produkt1 schalter="003" set="test">13263</produkt1>
  <produkt2 schalter="003" set="test">3284623</produkt1>
  <!-- kommentar -->
  <produkt3 schalter="002" set="test">1231231</produkt1>
  <produkt1 schalter="001" set="test">236486</produkt1>
</root>

Ich setze/schreibe nun per ASP das Attribut "set" mit einem bestimmten Wert, der abhängig von dem Attribut "schalter" ist. die asp steht unten, mir geht es aber eher nur um die eine Schleife, die dafür sorgt, dass alle produkte durchsucht werden:

For Each objField In objRoot.childNodes
     If objField.getAttribute ("schalter") = Request.Form.Key(x) Then
       objField.setAttribute "set", Request.Form(x)
 End If
 Next

Diese Schleife funktioniert nicht, wenn ich in der XML einen Kommentar habe wie oben gezeigt. Wenn ich aber alle Kommentare aus der xml entfern, dann funktioniert die Schleife. Nun möchte ich aber gerne nicht auf die Kommentare verzichten, da diese schon sehr hilfreich sind. Kann mir das einer erklären??

hier die komplette asp und ersichtlich, dass ich als microsoft dom benutze.
<%
Function loadXMLFile(strXMLFile, strXSLFile)
 Dim objXML
 Dim objXSL
 set objXML = Server.CreateObject("Microsoft.XMLDOM")
 objXML.async = false
 objXML.load(strXMLFile)
 set objXSL = Server.CreateObject("Microsoft.XMLDOM")

objXSL.async = false
 objXSL.load(strXSLFile)

Response.Write(objXML.transformNode(objXSL))
End Function

Function updateXML(strXMLFile)

Dim objDom
 Dim objRoot
 Dim objField
 Dim child
 Dim x

set objDOM = Server.CreateObject("Microsoft.XMLDOM")

objDOM.async = false

objDOM.load strXMLFile

Set objRoot = objDom.documentElement

For x = 1 to Request.Form.Count

If instr(1,Request.Form.Key(x),"btn") = 0 Then

For Each objField In objRoot.childNodes

If objField.getAttribute ("schalter") = Request.Form.Key(x) Then
       objField.setAttribute "set", Request.Form(x)

End If

Next
 End If

Next

objDom.save strXMLFile

Set objDom = Nothing
 Set objRoot = Nothing
 Set objField = Nothing

loadXMLFile strXMLFile,server.MapPath("produkt.xsl")
End Function

If Request.Form("btnSubmit") = "" Then
  loadXMLFile server.MapPath("produkt.xml"), _
  server.MapPath("produkt.xsl")
Else
  updateXML server.MapPath("produkt.xml")
End If
%>