No nyt tuli ajatuskatkos...
Olen tehnyt joskus aikaa sitten XML:ää parsivan mokkulan.
Nyt pitäsi lisätä vielä yksi noodi luettavaksi, mutta ei tunnu onnistuvan.
XML:n generoituu eräästä toisesta softasta.
xml:
... <systeemi xml_lang="fi"> <instanssi> <polku ="järjestelmän asetukset"> <kayttaja nimi="käyttäjät"> <kayttaja nimi="kryhmä"> <kayttaja nimi="Matti Meikäläinen" UID="1"> <ryhma polku="oikeudet/ryhmat/ryhma1" /> <ryhma polku="oikeudet/ryhmat/ryhma2" /> </kayttaja> </kayttaja> </kayttaja> </polku> </instanssi> </systeemi>
VB: koodi
xmlList = userXML.SelectNodes("/systeemi/instanssi/polku/kayttaja/kayttaja") For Each xmlNode In xmlList ' MsgBox(xmlNode.Name) 'MsgBox(xmlNode.ChildNodes.Count) userGroup = xmlNode.GetAttribute("nimi") For Each xmlChild In xmlNode.ChildNodes 'MsgBox(xmlChild.GetAttribute("nimi")) path = "/systeemi/instanssi/polku/kayttaja/kayttaja" & xmlNode.LocalName xmlGroupsNode = userXML.SelectNodes(path) userAccess = "" 'tämän pitäisi lukea kaikki ryhmat käyttäjältä For Each xmlGroupsChild In xmlGroupsNode userAccess = userAccess & xmlGroupsChild.GetAttribute("polku") & "," Next excelLine = xmlChild.GetAttribute("UID") & "," & xmlChild.GetAttribute("Nimi") & "," & userAccess excelWriter.WriteLine(excelLine) Next Next
Nyt en ymmärrä, että miksei xmlGroupsNode:ssa ole yhtään XmlElementtiä?
Kun katsoo muuttujaa path, niin sen polku on oikein.
Nuku yön yli ja...
For Each xmlGroupsChild In xmlChild.ChildNodes userAccess = userAccess & xmlGroupsChild.GetAttribute("polku") & "," Next
Se on sitä kun evottaa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.