Transformacja XSL w Javie z parametrami
Mam plik xsl, w którym muszę użyć parametrów z zewnętrznego źródła. Używam Javy i mój kod wygląda mniej więcej tak:
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer xsltTransformer = transformerFactory.newTransformer(xsltSource);
xsltTransformer.setParameter(parameterName, parameterValue);
Jednak wyjątek jest wyrzucany w drugiej linii - zmienna lub parametr 'nazwa_ zmienna' jest niezdefiniowany. zdaję sobie sprawę, że XSL jest kompilowany i prawdopodobnie jest kompilowany podczas tworzenia transformatora.
Jak przekazać parametry mojej transformacji? W jaki sposób należy stosować metodę setParameter?
25
2 answers
Jeśli podasz parametr taki jak:
transformer.setParameter("render_id", "1234");
Parametr można odczytać transformacją:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="yes"/>
<!-- Receives the id of the menu being rendered. -->
<xsl:param name="render_id" />
57
Author: rsp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-03 14:14:25
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-03 14:14:25
Odpowiedź Rsp była trafna. Dzięki. Chcę tylko dodać, że nie można przekazać parametru do zmiennej w ten sam sposób (ustawiam parametry przez TransformerFactory Javy).
Popełniłem błąd myśląc, że zmienne i paramy są wymienne:)
2
Author: TinyRacoon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-22 09:00:54
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-22 09:00:54