#ifndef ARABICA_XSLT_IF_HPP #define ARABICA_XSLT_IF_HPP #include "xslt_item.hpp" namespace Arabica { namespace XSLT { template class If : public ItemContainer { public: typedef stringT string_type; typedef adaptorT string_adaptor; If(Arabica::XPath::XPathExpressionPtr test) : test_(test) { } // If virtual ~If() { } virtual void execute(const DOM::Node& node, ExecutionContext& context) const { ChainStackFrame frame(context); if(test_->evaluateAsBool(node, context.xpathContext())) execute_children(node, context); } // execute private: Arabica::XPath::XPathExpressionPtr test_; }; // class If } // namespace XSLT } // namespace Arabica #endif