diff options
author | Adrian Kummerländer | 2014-05-01 18:14:33 +0200 |
---|---|---|
committer | Adrian Kummerländer | 2014-05-01 18:14:33 +0200 |
commit | e9c4e2b716798002c9ccbf96ee509eb91ad56553 (patch) | |
tree | 6032d0bac105a0c015a9042fb858dc853893a8a9 /src/transformation_facade.cc | |
parent | 29a6c1ab8b82491bcd54ad027e45644fde09ef59 (diff) | |
download | InputXSLT-e9c4e2b716798002c9ccbf96ee509eb91ad56553.tar InputXSLT-e9c4e2b716798002c9ccbf96ee509eb91ad56553.tar.gz InputXSLT-e9c4e2b716798002c9ccbf96ee509eb91ad56553.tar.bz2 InputXSLT-e9c4e2b716798002c9ccbf96ee509eb91ad56553.tar.lz InputXSLT-e9c4e2b716798002c9ccbf96ee509eb91ad56553.tar.xz InputXSLT-e9c4e2b716798002c9ccbf96ee509eb91ad56553.tar.zst InputXSLT-e9c4e2b716798002c9ccbf96ee509eb91ad56553.zip |
Added basic parameter taking overload of TransformationFacade::generate
* XSLT stylesheets may be provided with a set of initial parameters
** these parameters can be provided as the second argument to the generate member method in the form of a string to string mapping
** the XSLT standard also permitts number and node set types as value arguments of such input parameters but this is not supported by this change
* expanded test transformation to demonstrate this feature
Diffstat (limited to 'src/transformation_facade.cc')
-rw-r--r-- | src/transformation_facade.cc | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/transformation_facade.cc b/src/transformation_facade.cc index 846c586..3fee24f 100644 --- a/src/transformation_facade.cc +++ b/src/transformation_facade.cc @@ -55,6 +55,7 @@ int TransformationFacade::generate(const std::string& target) { xalan::XSLTInputSource inputSource(emptyStream); xalan::XSLTResultTarget outputTarget(target.data()); + const int resultCode = this->transformer_.transform( inputSource, this->transformation_, @@ -68,4 +69,22 @@ int TransformationFacade::generate(const std::string& target) { return resultCode; } +int TransformationFacade::generate( + const std::string& target, + const parameter_map& parameters +) { + for ( auto&& parameter : parameters ) { + this->transformer_.setStylesheetParam( + parameter.first.data(), + parameter.second.data() + ); + } + + const int resultCode = this->generate(target); + + this->transformer_.clearStylesheetParams(); + + return resultCode; +} + } |