GraphViz2::Parse::XML - Visualize XML as a graph
#!/usr/bin/env perl
use strict;
use warnings;
use File::Spec;
use GraphViz2;
use GraphViz2::Parse::XML;
my($graph) = GraphViz2 -> new
(
edge => {color => 'grey'},
global => {directed => 1},
graph => {rankdir => 'TB'},
node => {color => 'blue', shape => 'oval'},
);
my($g) = GraphViz2::Parse::XML -> new(graph => $graph);
$g -> create(file_name => File::Spec -> catfile('t', 'sample.xml') );
my($format) = shift || 'svg';
my($output_file) = shift || File::Spec -> catfile('html', "parse.xml.pp.$format");
$graph -> run(format => $format, output_file => $output_file);
See scripts/parse.xml.pp.pl ("Scripts Shipped with this Module" in GraphViz2).
Takes an XML file and converts it into a graph, using the pure-Perl XML::Tiny.
You can write the result in any format supported by Graphviz.
Here is the list of output formats.
new()
is called as my($obj) = GraphViz2::Parse::XML -> new(k1 => v1, k2 => v2, ...)
.
It returns a new object of type GraphViz2::Parse::XML
.
Key-value pairs accepted in the parameter list:
-
o graph => $graphviz_object
This option specifies the GraphViz2 object to use. This allows you to configure it as desired.
The default is GraphViz2 -> new. The default attributes are the same as in the synopsis, above.
This key is optional.
Creates the graph, which is accessible via the graph() method, or via the graph object you passed to new().
Returns $self for method chaining.
$file_name is the name of an XML file.
Returns the graph object, either the one supplied to new() or the one created during the call to new().
See "FAQ" in GraphViz2 and "Scripts Shipped with this Module" in GraphViz2.
Demonstrates using XML::Tiny to parse XML.
Inputs from ./t/sample.xml, and outputs to ./html/parse.xml.pp.svg by default.
Many thanks are due to the people who chose to make Graphviz Open Source.
And thanks to Leon Brocard, who wrote GraphViz, and kindly gave me co-maint of the module.
GraphViz2 was written by Ron Savage [email protected] in 2011.
Home page: http://savage.net.au/index.html.
Australian copyright (c) 2011, Ron Savage.
All Programs of mine are 'OSI Certified Open Source Software';
you can redistribute them and/or modify them under the terms of
The Perl License, a copy of which is available at:
http://dev.perl.org/licenses/