From e805000b1841691cd58930e80bd896a4f7611fd0 Mon Sep 17 00:00:00 2001 From: Adrian Kummerländer Date: Tue, 10 Jun 2014 22:27:24 +0200 Subject: Added input file support to ixslt * a single file may be passed to the XSLT processor as input ** the file is read once and stored within a xalan::XalanParsedSource to be reused by all calls to "TransformationFacade::generate" * added appropriate TranformationFacade constructor overload ** this new constructor overload which is taking a path to both the transformation and the input file is the main constructor *** the old constructor is now only a alias for this new constructor * adapted static "try_create" TransformationFacade factory method into variadic template factory method * added optional "--input" argument to ixslt ** expanded option handling accordingly --- ixslt.cc | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'ixslt.cc') diff --git a/ixslt.cc b/ixslt.cc index 86b883e..2200485 100644 --- a/ixslt.cc +++ b/ixslt.cc @@ -42,6 +42,11 @@ boost::optional input( boost::program_options::value()->required(), "transformation file" ) + ( + "input", + boost::program_options::value(), + "input file" + ) ( "target", boost::program_options::value(), @@ -90,12 +95,24 @@ bool process(const boost::program_options::variables_map& variables) { }; InputXSLT::PlattformGuard plattform(includePath); + InputXSLT::TransformationFacade::ptr transformation{}; + + if ( variables.count("input") ) { + transformation = InputXSLT::TransformationFacade::try_create( + handleErrors, + variables["input"].as(), + variables["transformation"].as(), + plattform.getEntityResolver() + ); + } else { + transformation = InputXSLT::TransformationFacade::try_create( + handleErrors, + variables["transformation"].as(), + plattform.getEntityResolver() + ); + } - if ( auto transformation = InputXSLT::TransformationFacade::try_create( - variables["transformation"].as(), - plattform.getEntityResolver(), - handleErrors - ) ) { + if ( transformation ) { WarningGuard guard(transformation.get()); try { -- cgit v1.2.3