xmlviewer(3)
NAME
Tk::XMLViewer - Tk widget to display XML
SYNOPSIS
use Tk::XMLViewer; $xmlviewer = $top->XMLViewer->pack; $xmlviewer->insertXML(-file => "test.xml"); $xmlviewer->insertXML(-text => '<?xml version="1.0" encoding="ISO-8859-1" ?><a><bla /><foo>bar</foo></a>');
DESCRIPTION
Tk::XMLViewer is an widget inherited from Tk::Text which
displays XML in a hierarchical tree. You can use the plus
and minus buttons to hide/show parts of the tree.
OPTIONS
"Tk::XMLViewer" supports all option of "Tk::Text" and
additionally the following:
- -tagcolor => $color
- Foreground color of tags.
- -attrkeycolor => $color
- Foreground color of attribute keys.
- -attrvalcolor => $color
- Foreground color of attribute values.
- -commentcolor => $color
- Foreground color of comment sections.
- The text tags "xml_tag", "xml_attrkey", "xml_attrval", and
"xml_comment" are defined for the corresponding XML ele
ments. If you want to customize further you can configure
the tags directly, for example:
$xmlviewer->tagConfigure('xml_comment', -foreground =>- "white",
-background => "red", -font=> "Helvetica 6");
- METHODS
- insertXML
- Insert XML into the XMLViewer widget. Use the -file
argument to insert a file and -text to insert an XML
string. - DumpXML
- Dump the contents of an "Tk::Text" widget into an XML
string. This is meant as a alternative to the
"Tk::Text::dump" method (in fact, "DumpXML" is imple
mented with the help of "dump"). - The output of "DumpXML" can be used as input for the
XMLViewer widget, which is useful in debugging
"Tk::Text" tags. - Use the static variant of "DumpXML" for "Tk::Text"
widgets and the method variant for "XMLViewer" wid
gets.
$xml_string1 = Tk::XMLViewer::DumpXML($text_widget);
$xmlviewer_widget->insertXML($xml_string1);$xml_string2 = $xmlviewer->DumpXML; - SetIndent
- Set indent with for XML tags
$xmlviewer->SetIndent(width); - XMLMenu
- Insert XML Menu into Text widget menu.
$xmlviewer->XMLMenu; - SourceType
- Returns type of source used for last insertXML (-file
or -text) - SourceContent
- Returns filename (source type -file) or XML text
(source type -text) used for last insertXML. - GetInfo
- Returns hash of standard XML decl and DOCTYPE ele
ments:
my %xmlheader = $xmlviewer->GetInfo; - Elements for XMLdecl: Version Encoding Standalone Ele
ments for DOCTYPE: Name Sysid Pubid Internal
BUGS
Perl/Tk does not support Unicode, yet. For perl 5.6.0 and
newer, unicode characters are translated to ISO-8859-1
chars, if possible. For older perls, there is no conver
sion (unless Unicode::String is installed), so unicode
characters will show as binary values.
DumpXML will not work with nested text tags.
There should be only one insertXML operation at one time
(these is probably only an issue with threaded operations,
which do not work in Perl/Tk anyway).
Viewing of large XML files is slow.
- head1 TODO
- - show to depth n: close everything from depth n+1
- create menu item "close selected region"
- DTD validation (is this possible with XML::Parser?)
AUTHOR
Slaven Rezic, <eserte@cs.tu-berlin.de>
Some additions by Jerry Geiger <jgeiger@rios.de>.