Link: start Link: parent Link: First page in set (first) Link: Previous page (previous) Link: Next page (next) Link: Last page in set (last) Link: A plain text version of this page (alternate) Link: The XIST source of this page (alternate) Link: The Python module described in this page (alternate) XIST.ns.detox ============= XIST based Python templating language ===================================== Home > Python software > ll.xist > ns > detox Text · XIST · Python Python softwarelist of projects * ll.xistAn extensible XML/HTML generator * ExamplesParsing/creating/modifying XML; Traversing XML trees * HowtoExplains parsing/generating XML files, XML transformations via XIST classes and other basic concepts. * SearchingHow to iterate through XIST trees * TransformationHow to transform XIST trees * Advanced topicsPool chaining, converter contexts, validation * MiscellaneousExplains various odds and ends of XIST * xscXIST core classes * nsPackage containing namespace modules * htmlHTML namespace * xmlNamespace implementing global XML attributes * wmlWML 1.3 namespace * ihtmlNamespace implementing i-mode compatible HTML * docbookNamespace implementing DocBook 4.3 * svgNamespace implementing SVG 1.0 * abbrNamespace containing abbreviation entities * codeNamespace for embedding Python code in XML * formNamespace implementing form related elements * phpNamespace for PHP processing instructions * jspNamespace for JSP code as processing instructions * metaNamespace containing meta information elements * rubyNamespace implementing the W3C ruby draft * specialsCommon useful elements * htmlspecialsCommon useful elements for HTML generation * docNamespace for automated documentation generation * kidNamespace for Kid templates * detoxNamespace for detox templates * toxicEmbed PL/SQL in XIST XML * rngNamespace for Relax NG * rss091Namespace for RSS 0.91 * rss20Namespace for RSS 2.0 * atomNamespace for Atom 1.0 * struts_htmlNamespace for Jakarta Struts HTML tags * struts_configNamespace for Jakarta Struts configuration file tags * parseParsing XML * presentScreen output of XML trees * simsSimple schema validation * xfindTree iteration and filtering * cssCSS related functions * scriptsScripts for text conversion and creating XIST namespaces * HistoryChangeLog for XIST * InstallationHow to install and configure XIST * MigrationHow to update your code to new versions of XIST * Mailing listsHow to subscribe to the XIST mailing lists * ll.ul4cA templating language * ll.urlRFC 2396 compliant URLs * ll.makeObject oriented make replacement * ll.daemonForking daemon processes * ll.sisyphusWriting cron jobs with Python * ll.colorRGB color values and color model conversion * ll.miscMisc utility functions and classes * ll.orasqlUtilities for cx_Oracle * ll.nightshadeServe the output of Oracle functions/procedures with CherryPy * ll.scriptsScripts for UL4 template rendering and URL handling * AploraLogging Apache HTTP requests to an Oracle database * PycocoPython code coverage * DownloadLinks to Windows and Linux, source and binary distributions * Source codeAccess to the Mercurial repositories This module is an XIST namespace. It provides a simple template language based on processing instructions embedded in XML or plain text. The following example is a simple "Hello, World" type template: from ll.xist.ns import detox template = """ Hello, World! """ module = detox.xml2mod(template) print "".join(module.helloworld()) class expr(ll.xist.xsc.ProcInst): ================================== Embed the value of the expression class textexpr(ll.xist.xsc.ProcInst): ====================================== class attrexpr(ll.xist.xsc.ProcInst): ====================================== class code(ll.xist.xsc.ProcInst): ================================== Embed the PI data literally in the generated code. For example will put the statement foo = 42 into the generated Python source. class if_(ll.xist.xsc.ProcInst): ================================= Starts an if block. An if block can contain zero or more elif_ blocks, followed by zero or one else_ block and must be closed with an endif PI. For example: One Two Three Something else class elif_(ll.xist.xsc.ProcInst): =================================== Starts an elif block. class else_(ll.xist.xsc.ProcInst): =================================== Starts an else block. class def_(ll.xist.xsc.ProcInst): ================================== Start a function (or method) definition. A function definition must be closed with an end PI. Example:
first name last name
If the generated function contains output (i.e. if there is text content or expr, textexpr or attrexpr PIs before the matching end) the generated function will be a generator function. Output outside of a function definition will be ignored. class class_(ll.xist.xsc.ProcInst): ==================================== Start a class definition. A class definition must be closed with an end PI. Example: class for_(ll.xist.xsc.ProcInst): ================================== Start a for loop. A for loop must be closed with an end PI. For example: class while_(ll.xist.xsc.ProcInst): ==================================== Start a while loop. A while loop must be closed with an end PI. For example: class end(ll.xist.xsc.ProcInst): ================================= Ends a while_ or for loop or a if_, def_ or class_ block. def xml2py(source): ==================== def xml2mod(source, name=None, filename='unnamed.py'): ======================================================= def enable_import(suffixes=None): ==================================