Avatar billede nidyahou Praktikant
23. juli 2009 - 16:57 Der er 4 kommentarer og
1 løsning

regexp i xslt list af ids

hep.

Jeghar et xslt script hvor jeg samler en streng af id's

(12,412,3562,39,03118 osv.) jeg vil gerne teste for et bestemt id i den streng. er der nogen der har et regexp til det?

det skal være konstrueret så den IKKE melder true tilbage hvis jeg spørger om id 12 er tilstede og 412 er tilstede.

boolean regexp:test(string, string, string?)
Avatar billede _skou_ Nybegynder
23. juli 2009 - 22:53 #1
Umiddelbart er der ikke et simpelt regulært udtryk der kan det du efterspørger. Det er muligt der kan laves et meget kompleks udtryk men jeg tror at det er at skyde gråspurve med kanoner. Hvis du insistere kan du se på følgende eksempel:
^(1[013-9]?)|([02-9][0-9]?)|([0-9]{3,})$ - Matcher ikke 12, men alle andre tal.
Er der ikke en anden måde problemet kan løses på? Fortæl lidt mere om dit problem.
Avatar billede nidyahou Praktikant
23. juli 2009 - 23:12 #2
det her er en C# funktion skrevet for at udfylde funktionen. Jeg vil bare helst ikke have den stående i min xslt fil, pga. "renheden" i koden.

<msxml:script implements-prefix="JMedialib" language="C#">
<msxml:assembly name="System.Web"/>
<msxml:using namespace="System.Web"/>
<![CDATA[
public bool inList(string item, string listtosplit)
{
Array ListToLookIn = listtosplit.Split(',');
return (Array.BinarySearch(ListToLookIn, item) != -1);
}
]]>
</msxml:script>
Avatar billede _skou_ Nybegynder
24. juli 2009 - 10:53 #3
Så det du ønsker er at løse det ved hjælp af XSLT i stedet for C#?
Jeg kan ikke se at problemet kan løses i XSLT 1.0. XSLT 1.0 understøtter ikke regulære udtryk.

Dit problem kan løses med XQuery 1.0, men det er vist ikke understøttet af ret mange browsere endnu.
I XQuery 1.0:
[code]
empty((12, 412, 3562, 39, 03118) intersect (12, 412))
[/code]
Avatar billede nidyahou Praktikant
24. juli 2009 - 11:57 #4
ok, jeg løste problemet ved at sikre at alle ids havde ,id, omkring sig og så simpelthen bruge xslt contains(,id,). Drop et svar. Tak for din indsats.
Avatar billede _skou_ Nybegynder
24. juli 2009 - 12:13 #5
Svar...
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