Avatar billede tele_lucien Nybegynder
27. juni 2002 - 09:46 Der er 4 kommentarer og
1 løsning

kan man lave xml udtræk på en xsl template side?

Hej med jer!

Jeg lige et spørgesmål omkring et xml/xsl/asp projekt jeg er i gang med, håber der er en der vil hjælpe mig.

1. Jeg har en side der hedder templates.xsl. Der trækker jeg f.eks. min top-menu og bundbar fra på alle de pågældende sider med følgende kommandoer:
   
På alle xsl siderne har jeg en <xsl:import href="templates.xsl"/>

og de pågældende templates kalder jeg ved <xsl:call-template name="menu"/>.

Mit spørgesmål er nu om jeg kan lave en match et sted i fra mit xml dokument i denne kode:

<xsl:template name="menu">
    <td>
        <table id="menu" style="width: 654px; height: auto;" align="top" cellpadding="3" cellspacing="0" border="0">
            <tr>
                <td id="menudataleft" align="center" valign="middle"><a href="index.asp" id="lnk03">startside</a></td>
                <td id="menudata" align="center" valign="middle"><a href="profil.asp" id="lnk03">profil</a></td>
                <td id="menudata" align="center" valign="middle"><a href="medlemmer.asp" id="lnk03">medlemmer</a></td>
                <td id="menudata" align="center" valign="middle"><a href="undervisere.asp" id="lnk03">undervisere</a></td>
                <td id="menudata" align="center" valign="middle"><a href="links.asp" id="lnk03">links</a></td>
                <td id="menudata" align="center" valign="middle"><a href="#" id="lnk03">login</a></td>
                <td id="menudataright" align="center" valign="middle"><a href="kontakt.asp" id="lnk03">kontakt</a></td>
            </tr>
        </table>
    </td>
</xsl:template>

Hvis jeg laver det sådan med <xsl:template name="menu"> virker det, men kan man ikke på en eller anden måde lave en match så man i stedet for at skrive indholdet af
templaten direkte, så lave en match + <xsl:value-of select="startside"/>.

Jeg ved ikke om det er sort snak. Men kort fotalt vil jeg først trække oplysninger fra mit xml doc. over i templates som så kan genbruges. Er det muligt?

Håber at fra jer.

Mvh Lucien
Avatar billede medions Nybegynder
27. juni 2002 - 10:09 #1
Hmm... jeg er ikke helt sikker på om det er dette du vil... men her har du da et lille eksempel...:

Dit XSL dokument:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"
                xmlns:dt="urn:schemas-microsoft-com:datatypes"
                xmlns:d2="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882">
  <xsl:template match="/" >
    <html>
    <head><meta http-equiv="refresh" content="0; url=default.xml" /></head>
      <body>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>


Og dig XML dokument:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="forsiden.xsl"?>
<rod>
<titel>.:: Webcorner ::.</titel>
</rod>

//>Rune
Avatar billede tele_lucien Nybegynder
27. juni 2002 - 10:36 #2
OKay vildt nok.........viste ikke man kunne gøre det med et meta tag på den måde der.

Man kan da ikke i det kald her <xsl:call-template name="menu"/> eller i den template <xsl:template name="menu"> her, lave et match fra xml dokumentet også kan man.

Hvad betyder det her?

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"  ?????
                xmlns:dt="urn:schemas-microsoft-com:datatypes" ????
                xmlns:d2="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"????>
Avatar billede Slettet bruger
27. juni 2002 - 11:00 #3
1)
  "http://www.w3.org/TR/WD-xsl" er det (æld-)gamle MS-namespace - det tilrådes IKKE at benytte dette, da det for det første kun er MS's XML Parser der forstår det, og for det andet er det ikke en standard. MSXML forstår udmærket det officielle XSLT 1.0 namespace: "http://www.w3.org/1999/XSL/Transform", der bla. indeholder den funktion du gerne vil benytte dig af, nemlig "document()", der f.eks. kan bruges på denne måde:

<xsl:apply-templates select="document('start.xml')//pages" />

-og her kan du bruge en variabel eller en parameter, hvilket man ikke kan i "match" på en template

/CS
Avatar billede tele_lucien Nybegynder
27. juni 2002 - 11:28 #4
Okay thanks......... Der hvor der står "document('start.xml')" det er selvfølgelig det xml doc. hvor der bliver hentet data fra, men "//pages"/>  skal det stå sådan?
Avatar billede Slettet bruger
27. juni 2002 - 15:36 #5
//pages er bare en XPath til det element der skal matches - et andet eksempel kunne være bare at skrive en bestemt attribut ud:

<xsl:value-of select="document('users.xml')//user[firstname='John'][lastname='Wayne']/movies[@western='yes']/@first" />

:-)

/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