Avatar billede nissetec Nybegynder
07. marts 2006 - 15:54 Der er 2 kommentarer og
1 løsning

Navigation i xml-fil

Hej

Jeg har en xml-fil, som jeg læser med vba med MSXML.DOMdocument30. Jeg skal på en eller anden måde have trukket værdier fra 4 niveauer ind i 4 comboboxe. Værdierne i combobox2 skal ændres så de passer hvis combobox1 ændres. Og det samme med combobox3 og 4.

Jeg kan godt fylde data i boks1, men jeg løber panden mod en mur, når jeg skal tænke mig til, hvordan næste niveaus data skal puttes i boks2 og ændres, hvis boks1 ændres.

Kan man søge på en attribut i en xml-fil og hente de underliggende childs? Eller kan man gøre noget smartere?

xml-filen kunne se således ud:
(Kan også være, at jeg har lavet xml-filen helt uhensigtsmæssigt. Skal den laves om?)

<Regler>
  <meddelelse medd="Meddelelser A">
      <kapitel kap="Kapitel I">
        <afsnit afsn="Afsnit A">
            <rgl>Regel 1</rgl>
            <rgl>Regel 2</rgl>
            <rgl>Regel 3</rgl>
            <rgl>Regel 4</rgl>
            <rgl>Regel 5</rgl>
        </afsnit>
        <afsnit afsn="Afsnit B">
            <rgl>Regel 1</rgl>
            <rgl>Regel 2</rgl>
            <rgl>Regel 3</rgl>
            <rgl>Regel 4</rgl>
            <rgl>Regel 5</rgl>
            <rgl>Regel 6</rgl>
            <rgl>Regel 7</rgl>
        </afsnit>
      </kapitel>
      <kapitel kap="Kapitel II">
        <afsnit afsn="Afsnit A">
            <rgl>Regel 1</rgl>
            <rgl>Regel 2</rgl>
            <rgl>Regel 3</rgl>
            <rgl>Regel 4</rgl>
        </afsnit>
        <afsnit afsn="Afsnit B">
            <rgl>Regel 1</rgl>
            <rgl>Regel 2</rgl>
            <rgl>Regel 3</rgl>
        </afsnit>
      </kapitel>
  </meddelelse>
  <meddelelse medd="Meddelelser B">
      <kapitel kap="Kapitel I">
        <afsnit afsn="Afsnit A">
            <rgl>Regel 1</rgl>
            <rgl>Regel 2</rgl>
            <rgl>Regel 3</rgl>
            <rgl>Regel 4</rgl>
            <rgl>Regel 5</rgl>
            <rgl>Regel 6</rgl>
            <rgl>Regel 7</rgl>
            <rgl>Regel 8</rgl>
        </afsnit>
      </kapitel>
  </meddelelse>
</Regler>
Avatar billede Slettet bruger
07. marts 2006 - 23:29 #1
Mit VB er ret rustent for tiden, men når der er valgt noget i combobox1, kan du hente indholdet til combobox2 ved at tage værdien fra combobox1 ind i strengen til selectSingleNode(), og derefter hente dennes kapitel-childs' "kap"-attribut - ala:

Set combo1selection = xmlDoc.selectSingleNode("/Regler/meddelelse[@medd = '" & combobox1.Value & "']")
Set combo2nodes = combo1selection.selectNodes("kapitel/@kap")
' -- Fyld combobox2 med hver af combo2nodes elementernes .Text (eller .Value - kan aldrig huske det)

Håber det giver mening...
/CS
Avatar billede nissetec Nybegynder
08. marts 2006 - 09:50 #2
Og det spiller en million (det var i øvrigt .text)

Smid et svar, så sender jeg nogle point i din retning :)
Avatar billede Slettet bruger
08. marts 2006 - 10:10 #3
Tillykke, hurra og "det var da dejligt"! :-)

/CS
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester