[opgelost] Param doorgeven in do shell script
30 januari 2011 - 20:25   
geplaatst door: AndreRelink
Ik probeer uit te vinden waarom mijn do shell (applescript) nog niet juist functioneert.

Het volgende is het geval, ik wil een value doorgeven via xsltproc aan een XSLT file (zie code)

do shell script "xsltproc  --param PARAMNAME PARAMVALUE " & xsl_file & " " & xml_file

De value wordt niet doorgegeven (of niet juist opgepakt in de XSLT file) toch wordt de XML wel gegenereerd echter de PARAMVALUE ontbreekt. Als de value direct in de XSLT wordt geplaatst dan wordt de XML wel juist geparced, dus de XSLT is juist.

param direct in de XSLT plaatsen
<xsl:param name="PARAMNAME">PARAMVALUE</xsl:param>

Er zijn, zover ik nu kan beredeneren, twee mogelijkheden of xsltproc  --param PARAMNAME PARAMVALUE werkt niet of de VALUE wordt niet op de juiste manier in de XSLT opgepakt.
Mogelijk gebruik ik niet de juiste methode om in de XSLT de param op te pakken.

Wie geeft het juiste zetje.

(Bewerkt door AndreRelink om 20:29, 30-01-2011)

(Bewerkt door AndreRelink om 23:50, 30-01-2011)

[opgelost] Param doorgeven in do shell script
30 januari 2011 - 20:33    reactie #1
geplaatst door: hydraat
Lukt het om het shell script te laten uitvoeren, door het Applescript, dus zonder dat je de variabelen erin laat plaatsen? Dat eerst uitzoeken en dan één voor één de waarden vervangen door de variabelen.

Succes!

PS. http://macscripter.net/ ken je?

Certified Casper Expert (JAMF CCE)
Certified Casper Administrator (JAMF CCA)
[opgelost] Param doorgeven in do shell script
30 januari 2011 - 20:57    reactie #2
geplaatst door: AndreRelink
@ hydraat

De do shell script wordt uitgevoerd in applescript, dat is ook niet mijn probleem.
Ook wordt de do shell opdracht xsltproc  --param PARAMNAME PARAMVALUE " & xsl_file & " " & xml_file uitgevoerd, echter de variable wordt niet doorgegeven aan de XSLT.

Het gaat ook maar om één variable set "--param PARAMNAME PARAMVALUE". Het weglaten één voor één en de variable vervangen voegt ook niets toe.

Het gaat specifiek om "xsltproc  --param PARAMNAME PARAMVALUE  en het oppaken van de variable in de XSLT


En ja, macscripter.net ken ik (ik programmeer meer dan 10 jaar in Applescript   :wink:   )

(Bewerkt door AndreRelink om 21:09, 30-01-2011)

[opgelost] Param doorgeven in do shell script
30 januari 2011 - 21:24    reactie #3
geplaatst door: Maurice van Gaal
Heb je misschien wat aan de info op deze pagina:

http://msdn.microsoft.com/en-us/library/ms256096.aspx

[opgelost] Param doorgeven in do shell script
30 januari 2011 - 21:36    reactie #4
geplaatst door: SteveJobs
ff offtopic:

Relink.....Is dat geen sponsor van MacFreak geweest in het verleden toevallig? Naam komt me bekend voor.

Don't panic
[opgelost] Param doorgeven in do shell script
30 januari 2011 - 21:46    reactie #5
geplaatst door: AndreRelink
@Maurice
Helaas niet, het afhandelen van param of variable in XSLT is mij bekent.

Het kan zijn dat in combinatie met xsltproc er een andere manier is om de param op te pakken maar dat komt volgens mijn niet voor op de aangedragen pagina.

Mogelijk werkt het doorgeven van variable met xsltproc niet juist onder OSX 10.6.
Een test onder 10.4 of 10.5 kan geen kwaad.

Tot nu toe kan kan ik op het internet niets vinden dat me verder helpt, met man xsltproc kom ik ook niet verder. Er wordt niets beschreven over het oppakken van de PARAM, dus ga ik er vanuit dat de PARAM wordt doorgegeven/opgepakt zoals normaal in XLST wordt voorgeschreven

(Bewerkt door AndreRelink om 21:47, 30-01-2011)

[opgelost] Param doorgeven in do shell script
30 januari 2011 - 21:49    reactie #6
geplaatst door: AndreRelink
ff offtopic:  Klopt SteefJoops :biggrin:
[opgelost] Param doorgeven in do shell script
30 januari 2011 - 23:48    reactie #7
geplaatst door: AndreRelink
Opgelost.


Het script getest onder OSX 10.4, daar kreeg ik opeens netjes een error-log terug, xsltproc in 10.4 OSX ondersteund alleen XSLT versie 1.0 en ik maakte gebruik van versie 2.0, vandaar de error ( xsltproc onder OSX 10.6 ondersteund wel XSLT versie 2.0) maar goed, nu ik errors zie kan ik verder testen.

Het blijkt dat de variable wel wordt doorgegeven, alleen niet als string wordt gezien.  
Daarom de --param als string param versturen. mijn script werkt!!

Bedankt voor het meedenken.

Wel vreemd dat xsltproc onder OSX 10.6 geen error-log geeft ook niet met verbose.