HilfeZuXmlSeiten

XML-Seiten & XSLT-Verarbeitung

Wenn Sie [WWW] Python4Suite auf Ihrem System installiert haben, ist es möglich, XML-Dokumente als Seiten abzuspeichern. Es ist wichtig, diese Seiten mit einer XML-Deklaration "<?xml ...>" in der ersten Zeile anzufangen. Außerdem müssen Sie das Stylesheet angeben, das benutzt werden soll, um das XML-Dokument zu HTML zu verarbeiten. Das wird realisiert, indem man eine [WWW] standard "xml-stylesheet" processing instruction benutzt, mit einem "href"-Parameter mit dem Namen einer Seite, die das Stylesheet enthält.

Das folgende Beispiel zeigt die praktische Anwendung an einem sehr einfachen Stylesheet, das auf der Seite XsltVersion gefunden werden kann.

Beispiel

<?xml version="1.0" encoding="ISO-8859-1"?>

<?xml-stylesheet href="XsltVersion" type="text/xml"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

   <xsl:output method="html" omit-xml-declaration="yes" indent="no"/>

   <xsl:template match="/">
     Dieses Wiki benutzt eine XSLT-Engine von
     <xsl:value-of select="system-property('xsl:vendor')"/>
     (<a href="{system-property('xsl:vendor-url')}"><xsl:value-of select="system-property('xsl:vendor-url')"/></a>)
     die XSLT v<xsl:value-of select="system-property('xsl:version') implementiert."/>
   </xsl:template>

</xsl:stylesheet>

Anzeige

--> -->
 
 
AttributeErrorFormatter instance has no attribute 'raw_html'
Please include this information in your bug reports!:
Python Python 2.3.4: /usr/bin/python
Linux webserv1.linux.duke.edu 2.6.9-55.0.12.ELsmp #1 SMP Fri Nov 2 12:38:56 EDT 2007 x86_64
MoinMoin Release 1.3.5 [Revision 1.3.5 release]
Thu Apr 23 17:45:52 2009

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /usr/lib/python2.3/site-packages/MoinMoin/request.py in run(self=<MoinMoin.request.RequestCGI object>)
  914             else:
  915                 try:
  916                     cgitb.Hook(file=self).handle(saved_exc)
  917                     # was: cgitb.handler()
  918                 except:
cgitb = <module 'MoinMoin.support.cgitb' from '/usr/lib/python2.3/site-packages/MoinMoin/support/cgitb.pyc'>, cgitb.Hook = <class MoinMoin.support.cgitb.Hook>, file undefined, self = <MoinMoin.request.RequestCGI object>, ).handle undefined, saved_exc = (<class exceptions.AttributeError>, <exceptions.AttributeError instance>, <traceback object>)

 /usr/lib/python2.3/site-packages/MoinMoin/Page.py in send_page(self=<MoinMoin.Page.Page instance>, request=<MoinMoin.request.RequestCGI object>, msg='', **keywords={'count_hit': 1})
 1152         else:
 1153             # parse the text and send the page content
 1154             self.send_page_content(request, Parser, body, format_args=pi_formatargs, do_cache=do_cache)
 1155 
 1156             # check for pending footnotes
self = <MoinMoin.Page.Page instance>, self.send_page_content = <bound method Page.send_page_content of <MoinMoin.Page.Page instance>>, request = <MoinMoin.request.RequestCGI object>, Parser = <class MoinMoin.parser.wiki.Parser>, body = u'== XML-Seiten & XSLT-Verarbeitung ==\nWenn Sie [h...>\n}}} \n\n=== Anzeige ===\n[[Include(XsltVersion)]]\n', format_args undefined, pi_formatargs = u'', do_cache = 1

 /usr/lib/python2.3/site-packages/MoinMoin/Page.py in send_page_content(self=<MoinMoin.Page.Page instance>, request=<MoinMoin.request.RequestCGI object>, Parser=<class MoinMoin.parser.wiki.Parser>, body=u'== XML-Seiten & XSLT-Verarbeitung ==\nWenn Sie [h...>\n}}} \n\n=== Anzeige ===\n[[Include(XsltVersion)]]\n', needsupdate=0, format_args=u'', do_cache=1)
 1319             self.send_page_content(request, Parser, body, needsupdate=1)
 1320             request.clock.start('send_page_content')
 1321             cache = caching.CacheEntry(request, arena, key)
 1322 
 1323         # Save my cache modification time, this info might be used by
cache = <MoinMoin.caching.CacheEntry instance>, global caching = <module 'MoinMoin.caching' from '/usr/lib/python2.3/site-packages/MoinMoin/caching.pyc'>, caching.CacheEntry = <class MoinMoin.caching.CacheEntry>, request = <MoinMoin.request.RequestCGI object>, arena = <MoinMoin.Page.Page instance>, key = 'text_html'

 /srv/httpd/vhosts/dulug.dulug.duke.edu/HilfeZuXmlSeiten

 /usr/lib/python2.3/site-packages/MoinMoin/formatter/base.py in macro(self=<MoinMoin.formatter.text_html.Formatter instance>, macro_obj=<MoinMoin.wikimacro.Macro instance>, name=u'Include', args=u'XsltVersion')
  229     def macro(self, macro_obj, name, args):
  230         # call the macro
  231         return macro_obj.execute(name, args)    
  232 
  233     def _get_bang_args(self, line):
macro_obj = <MoinMoin.wikimacro.Macro instance>, macro_obj.execute = <bound method Macro.execute of <MoinMoin.wikimacro.Macro instance>>, name = u'Include', args = u'XsltVersion'

 /usr/lib/python2.3/site-packages/MoinMoin/wikimacro.py in execute(self=<MoinMoin.wikimacro.Macro instance>, macro_name=u'Include', args=u'XsltVersion')
   99         macro = wikiutil.importPlugin(self.request.cfg, 'macro', macro_name)
  100         if macro:
  101             return macro(self, args)
  102 
  103         builtins = vars(self.__class__)
macro = <function execute>, self = <MoinMoin.wikimacro.Macro instance>, args = u'XsltVersion'

 /usr/lib/python2.3/site-packages/MoinMoin/macro/Include.py in execute(macro=<MoinMoin.wikimacro.Macro instance>, text=u'XsltVersion', args_re=<_sre.SRE_Pattern object>, title_re=<_sre.SRE_Pattern object>, called_by_toc=0)
  220             result.append(strfile.getvalue())
  221         finally:
  222             request.redirect()
  223 
  224         # decrement or remove include marker
request = <MoinMoin.request.RequestCGI object>, request.redirect = <bound method RequestCGI.redirect of <MoinMoin.request.RequestCGI object>>

 /usr/lib/python2.3/site-packages/MoinMoin/Page.py in send_page(self=<MoinMoin.Page.Page instance>, request=<MoinMoin.request.RequestCGI object>, msg='', **keywords={'content_id': u'Include_XsltVersion', 'content_only': 1})
 1152         else:
 1153             # parse the text and send the page content
 1154             self.send_page_content(request, Parser, body, format_args=pi_formatargs, do_cache=do_cache)
 1155 
 1156             # check for pending footnotes
self = <MoinMoin.Page.Page instance>, self.send_page_content = <bound method Page.send_page_content of <MoinMoin.Page.Page instance>>, request = <MoinMoin.request.RequestCGI object>, Parser = <class MoinMoin.parser.xslt.Parser>, body = u'<?xml version="1.0" encoding="ISO-8859-1"?>\n\n<?x...rsion\')"/>\n </xsl:template>\n\n</xsl:stylesheet>\n', format_args undefined, pi_formatargs = '', do_cache = 1

 /usr/lib/python2.3/site-packages/MoinMoin/Page.py in send_page_content(self=<MoinMoin.Page.Page instance>, request=<MoinMoin.request.RequestCGI object>, Parser=<class MoinMoin.parser.xslt.Parser>, body=u'<?xml version="1.0" encoding="ISO-8859-1"?>\n\n<?x...rsion\')"/>\n </xsl:template>\n\n</xsl:stylesheet>\n', needsupdate=1, format_args='', do_cache=1)
 1287             request.redirect(buffer)
 1288             parser = Parser(body, request)
 1289             parser.format(formatter)
 1290             request.redirect()
 1291             text = buffer.getvalue()
parser = <MoinMoin.parser.xslt.Parser instance>, parser.format = <bound method Parser.format of <MoinMoin.parser.xslt.Parser instance>>, formatter = <MoinMoin.formatter.text_python.Formatter instance>

 /usr/lib/python2.3/site-packages/MoinMoin/parser/xslt.py in format(self=<MoinMoin.parser.xslt.Parser instance>, formatter=<MoinMoin.formatter.text_python.Formatter instance>)
   46             # can be activated in wikiconfig.py
   47             from MoinMoin.parser import plain
   48             self.request.write(formatter.sysmsg(1) +
   49                                formatter.raw_html(_('XSLT option disabled, please look at HelpOnConfiguration.')) +
   50                                formatter.sysmsg(0))
self = <MoinMoin.parser.xslt.Parser instance>, self.request = <MoinMoin.request.RequestCGI object>, self.request.write = <bound method RequestCGI.write of <MoinMoin.request.RequestCGI object>>, formatter = <MoinMoin.formatter.text_python.Formatter instance>, formatter.sysmsg = <bound method Formatter.sysmsg of <MoinMoin.formatter.text_html.Formatter instance>>, formatter.raw_html undefined, _ = <function <lambda>>

 /usr/lib/python2.3/site-packages/MoinMoin/formatter/text_python.py in __getattr__(self=<MoinMoin.formatter.text_python.Formatter instance>, name='raw_html')
   74         """ For every thing we have no method/attribute use the formatter
   75         """
   76         return getattr(self.formatter, name)
   77 
   78     def __insert_code(self, call):
getattr undefined, self = <MoinMoin.formatter.text_python.Formatter instance>, self.formatter = <MoinMoin.formatter.text_html.Formatter instance>, name = 'raw_html'

AttributeError: Formatter instance has no attribute 'raw_html'
      __doc__ = 'Attribute not found.'
      __getitem__ = <bound method AttributeError.__getitem__ of <exceptions.AttributeError instance>>
      __init__ = <bound method AttributeError.__init__ of <exceptions.AttributeError instance>>
      __module__ = 'exceptions'
      __str__ = <bound method AttributeError.__str__ of <exceptions.AttributeError instance>>
      args = ("Formatter instance has no attribute 'raw_html'",)