Avatar billede mesterlars Nybegynder
26. juli 2001 - 22:39 Der er 3 kommentarer og
1 løsning

Load kun noget af XML dokumenter?

Jeg er ikke den store xml haj

Jeg har et XML dokument, der generer en træstruktur i browseren (ASP, der kører xml\'en igennem og generer html/javascript, der sendes til browseren).

Træstukturen er fra Topnoden og så ned af - hvilket ikke altid er genialt

Men nogengange er jeg ikke interesseret i at få de øverste noder med i min træstruktur. Ergo vil jeg kun loade en del af XML\'en ind - eller noget der svarer til dette

min xml kommer her:
-----------------------
<country type=\"root\" value=\"sites\" url=\"content.asp?page=usa\">
    <site type=\"folder\" value=\"dk\">
        <states type=\"folder\" value=\"States\" url=\"content.asp?page=states\">
            <state type=\"document\" url=\"content.asp?page=ca\" value=\"California\"/>
            <state type=\"document\" url=\"content.asp?page=nj\" value=\"New Jersey\"/>
            <state type=\"document\" url=\"content.asp?page=az\" value=\"Arizona\"/>
        </states>
        <hist_fig type=\"folder\" value=\"Historical Figures\" url=\"content.asp?page=histfig\">
            <figure type=\"document\" value=\"George Washington\" url=\"content.asp?page=george\"/>
            <figure type=\"document\" value=\"Thomas Jefferson\" url=\"content.asp?page=tom\"/>
        </hist_fig>
        <history type=\"folder\" value=\"History\" url=\"content.asp?page=history\">
            <Cent20 type=\"folder\" url=\"content.asp?page=20th\" value=\"20th Century\">
                <inventions type=\"folder\" url=\"content.asp?page=inv\" value=\"Inventions\">
                    <technologies type=\"folder\" url=\"content.asp?page=tec\" value=\"Technology\">
                        <radio type=\"folder\" url=\"content.asp?page=radio\" value=\"Radio\">
                            <bground type=\"document\" url=\"content.asp?page=invprof\" value=\"Inventor Profile\"/>
                            <bground type=\"document\" url=\"content.asp?page=first\" value=\"First Use\"/>
                        </radio>
                        <computers type=\"folder\" url=\"content.asp?page=computers\" value=\"Computers\">
                            <begin type=\"folder\" url=\"content.asp?page=begin\" value=\"Beginnings\">
                                <summary type=\"document\" url=\"content.asp?page=sum\" value=\"Summary\"/>
                                <transistor type=\"folder\" url=\"content.asp?page=trans\" value=\"Transistor\">
                                    <trans type=\"document\" url=\"content.asp?page=inventor\" value=\"Inventor\"/>
                                    <trans type=\"document\" url=\"content.asp?page=app\" value=\"Applications\"/>
                                </transistor>
                            </begin>
                        </computers>
                    </technologies>
                </inventions>
                <wars type=\"folder\" url=\"content.asp?page=wars\" value=\"Wars\">
                    <war type=\"document\" url=\"content.asp?page=wwi\" value=\"World War I\"/>
                    <war type=\"document\" url=\"content.asp?page=wwii\" value=\"World War II\"/>
                    <war type=\"document\" url=\"content.asp?page=viet\" value=\"Vietnam\"/>
                </wars>
            </Cent20>
            <Cent21 type=\"folder\" url=\"content.asp?page=21st\" value=\"21st Century\"/>
        </history>
    </site>
    <site type=\"folder\" value=\"uk\">
        <states type=\"folder\" value=\"States\" url=\"content.asp?page=states\">
            <state type=\"document\" url=\"content.asp?page=ca\" value=\"California\"/>
            <state type=\"document\" url=\"content.asp?page=nj\" value=\"New Jersey\"/>
            <state type=\"document\" url=\"content.asp?page=az\" value=\"Arizona\"/>
        </states>
        <hist_fig type=\"folder\" value=\"Historical Figures\" url=\"content.asp?page=histfig\">
            <figure type=\"document\" value=\"George Washington\" url=\"content.asp?page=george\"/>
            <figure type=\"document\" value=\"Thomas Jefferson\" url=\"content.asp?page=tom\"/>
        </hist_fig>
        <history type=\"folder\" value=\"History\" url=\"content.asp?page=history\">
            <Cent20 type=\"folder\" url=\"content.asp?page=20th\" value=\"20th Century\">
                <inventions type=\"folder\" url=\"content.asp?page=inv\" value=\"Inventions\">
                    <technologies type=\"folder\" url=\"content.asp?page=tec\" value=\"Technology\">
                        <radio type=\"folder\" url=\"content.asp?page=radio\" value=\"Radio\">
                            <bground type=\"document\" url=\"content.asp?page=invprof\" value=\"Inventor Profile\"/>
                            <bground type=\"document\" url=\"content.asp?page=first\" value=\"First Use\"/>
                        </radio>
                        <computers type=\"folder\" url=\"content.asp?page=computers\" value=\"Computers\">
                            <begin type=\"folder\" url=\"content.asp?page=begin\" value=\"Beginnings\">
                                <summary type=\"document\" url=\"content.asp?page=sum\" value=\"Summary\"/>
                                <transistor type=\"folder\" url=\"content.asp?page=trans\" value=\"Transistor\">
                                    <trans type=\"document\" url=\"content.asp?page=inventor\" value=\"Inventor\"/>
                                    <trans type=\"document\" url=\"content.asp?page=app\" value=\"Applications\"/>
                                </transistor>
                            </begin>
                        </computers>
                    </technologies>
                </inventions>
                <wars type=\"folder\" url=\"content.asp?page=wars\" value=\"Wars\">
                    <war type=\"document\" url=\"content.asp?page=wwi\" value=\"World War I\"/>
                    <war type=\"document\" url=\"content.asp?page=wwii\" value=\"World War II\"/>
                    <war type=\"document\" url=\"content.asp?page=viet\" value=\"Vietnam\"/>
                </wars>
            </Cent20>
            <Cent21 type=\"folder\" url=\"content.asp?page=21st\" value=\"21st Century\"/>
        </history>
    </site>
</country>
-----------------------

i det her tilfælde ville jeg f.eks. ønsker jeg kunne gøre linien med: <site type=\"folder\" value=\"dk\"> til topnode

og min træstruktur så kun ville vise strukturen for det danske site

nogen ideer til dette?
Avatar billede kedde65 Praktikant
27. juli 2001 - 08:07 #1
Der er selvfølgelig altid mulighedem for at bruge XMLDom og bruge noget dynamsik xsl til kun at udvælge den node det drejer sig om, men jeg synes jeg mangler lidt info, for at kunne give et ordentligt svar.
Kedde
Avatar billede janegil Nybegynder
09. august 2001 - 15:57 #2
Hvis attributtet \'value\' i site-elementet er deklarert som ID i DTD\'en, skulle
http://www.kedde65.dk/index.xml#dk
i prinsippet gi deg det \'danske\' fragmentet fra XML\'en. (\"#dk\" er en \'fragment id\'.)

Men jeg kan aldri tro at det virker i noen eksisterende browser/server-kombinasjon.

Hvis du ønsker å hente en \'gren\' fra treet på serveren, er det et nokså enkelt stykke XSL/T. Men jeg har ingen erfaring med å kjøre XSL/T under ASP. Er det ikke noe med at M$-software ikke støtter standard XSL/T såmm uten videre?
Avatar billede Slettet bruger
23. november 2001 - 18:45 #3
Det er faktisk sådan noget som SAX er lavet til.

Med XMLDOM skal hele dokumentet ind i memory før man kan begynde at pille, hvorimod man med SAX \"fanger\" delene mens de loades, hvilket betyder at du sætter en funktion til at \"vente\" på f.eks. en \"startElement()\", hvori du checker om elementet er det du har brug for - hvis det er, fanger du det og afbryder parsingen...

Jeg har ikke prøvet at lege med det, men på http://msdn.microsoft.com/xml kan man ihvertfald finde den fornødne info.

Såvidt jeg husker er der support for SAX i MSXML Parserne version 3+4.

/CS
Avatar billede mesterlars Nybegynder
23. november 2001 - 18:58 #4
Jeg har glemt at lukke spørgsmålet kan jeg se - og da jeg ikke har problemet vil jeg ikke teste det...

Men tak for svaret, anyhow.
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

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