Subversion-Projekte lars-tiefland.prado

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
3
/**
4
 * XML renderer.
5
 *
6
 * Based on the HTML renderer by Andrey Demenev.
7
 *
8
 * LICENSE: This source file is subject to version 3.0 of the PHP license
9
 * that is available through the world-wide-web at the following URI:
10
 * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
11
 * the PHP License and are unable to obtain it through the web, please
12
 * send a note to license@php.net so we can mail you a copy immediately.
13
 *
14
 * @category   Text
15
 * @package    Text_Highlighter
16
 * @author     Stoyan Stefanov <ssttoo@gmail.com>
17
 * @copyright  2006 Stoyan Stefanov
18
 * @license    http://www.php.net/license/3_0.txt  PHP License
19
 * @version    CVS: $Id: XML.php,v 1.1 2007/06/03 02:37:09 ssttoo Exp $
20
 * @link       http://pear.php.net/package/Text_Highlighter
21
 */
22
 
23
/**
24
 * @ignore
25
 */
26
 
27
require_once dirname(__FILE__).'/../Renderer.php';
28
require_once dirname(__FILE__).'/../Renderer/Array.php';
29
 
30
/**
31
 * XML renderer, based on Andrey Demenev's HTML renderer.
32
 *
33
 * @author     Stoyan Stefanov <ssttoo@gmail.com>
34
 * @category   Text
35
 * @package    Text_Highlighter
36
 * @copyright  2006 Stoyan Stefanov
37
 * @license    http://www.php.net/license/3_0.txt  PHP License
38
 * @version    Release: 0.5.0
39
 * @link       http://pear.php.net/package/Text_Highlighter
40
 */
41
 
42
class Text_Highlighter_Renderer_XML extends Text_Highlighter_Renderer_Array
43
{
44
 
45
 
46
    /**
47
     * Options for XML_Serializer
48
     *
49
     * @access private
50
     * @var array
51
     */
52
    var $_serializer_options = array();
53
 
54
 
55
    /**
56
     * Resets renderer state
57
     *
58
     * Descendents of Text_Highlighter call this method from the constructor,
59
     * passing $options they get as parameter.
60
     *
61
     * @access protected
62
     */
63
    function reset()
64
    {
65
        parent::reset();
66
        if (isset($this->_options['xml_serializer'])) {
67
            $this->_serializer_options = $this->_options['xml_serializer'];
68
        }
69
    }
70
 
71
 
72
    /**
73
     * Signals that no more tokens are available
74
     *
75
     * @abstract
76
     * @access public
77
     */
78
    function finalize()
79
    {
80
 
81
        // call parent's finalize(), then serialize array into XML
82
        parent::finalize();
83
        $output = parent::getOutput();
84
 
85
        $serializer = new XML_Serializer($this->_serializer_options);
86
        $result = $serializer->serialize($output);
87
        if ($result === true) {
88
            $this->_output = $serializer->getSerializedData();
89
        }
90
    }
91
 
92
 
93
}
94
 
95
/*
96
 * Local variables:
97
 * tab-width: 4
98
 * c-basic-offset: 4
99
 * c-hanging-comment-ender-p: nil
100
 * End:
101
 */
102
 
103
?>