Avatar billede sbh123 Nybegynder
14. november 2007 - 14:45 Der er 9 kommentarer

Wildcard i match

Nogen der ved hvordan man laver et wildcard sådan at man får alle de forekomster som findes eks:

<xsl:template match="/web-app/servlet/init-param[param-value='/WEB-INF/variabel/struts-config.xml']">   
    </xsl:template>

under value står der 'variabel', den skal sikre at der her er en node, men navn på den er lige meget.
Avatar billede janegil Nybegynder
14. november 2007 - 15:43 #1
Dette ser ut som bortebane for XSLT. Hvis ikke XPATH kommer med regulære uttrykk en vakker dag?
Avatar billede jokkejensen Novice
14. november 2007 - 16:11 #2
<xsl:template match="/web-app/servlet/init-param[param-value!='']" />   

Altså så ser den om der er en param-value... husk $ foran variabler og params, og @ foran attributter..

Taler jeg i tåger, så smid lige et XML stykke og beskriv hvad du vil.

/JJ
Avatar billede jokkejensen Novice
14. november 2007 - 16:12 #3
altså $param-value eller @param-value.. det kan ikke bare være [param-value]
Avatar billede jokkejensen Novice
14. november 2007 - 16:14 #4
Den her tager alle noder under servlet, så kan du selv udtrykke det lidt bedre, hvis det er sådan noget du er ude i.

<xsl:template match="/web-app/servlet//*" />
Avatar billede sbh123 Nybegynder
15. november 2007 - 08:23 #5
Problemet er at jeg skal gennemgå mange xml filer. I dem er variabel noden altid forskellig, og det er ikke muligt for mig at vide hvad værdien er. Så med eksemplet fra før kan de forskellige filer se således ud:

fil1:
<xsl:template match="/web-app/servlet/init-param[param-value='/WEB-INF/test1servlet/struts-config.xml']">   
    </xsl:template>

fil2:
<xsl:template match="/web-app/servlet/init-param[param-value='/WEB-INF/test2servlet/struts-config.xml']">   
    </xsl:template>

og derfor vil jeg lave en template match som rammer både den ene og den anden.

Blot som eksempel:
<xsl:template match="/web-app/servlet/init-param[param-value='/WEB-INF/*/struts-config.xml']">   
    </xsl:template>
Avatar billede jokkejensen Novice
15. november 2007 - 15:21 #6
når du har noget i single quotes er det en tekst streng, så det kan ikke lade sig gøre på den måde..

Så skal du ramme alle noder og herefter søge i strengen i din <template>, brug substring-after og substring-before til at "klippe" i strengen..

/JJ
Avatar billede sbh123 Nybegynder
15. november 2007 - 15:23 #7
Har du et eksempel på det? Ville være nice, jeg er nybegynder vedr. XSLT.
Avatar billede jokkejensen Novice
16. november 2007 - 10:54 #8
kan du ikke lige komme med nogle flere eksempler så..

Eller er det KUN /web-app/servlet/init-param[param-value='/WEB-INF/variabel/struts-config.xml det sted der står "variabel" her der er dynamisk, og er man sikker på det er samme mappe stuktur hele tiden, på nær "variabel" ?

/JJ
Avatar billede sbh123 Nybegynder
16. november 2007 - 10:59 #9
Jeps, det er kun 'variabel' der er dynamisk, alt andet statisk.
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