-
Notifications
You must be signed in to change notification settings - Fork 29
XML Format Example
Christian Haettich edited this page Feb 17, 2017
·
1 revision
#XML Format Example
The XML format is defined by graphml: http://graphml.graphdrawing.org/
By running the command include_gardener ./inc -f xml -o graph.xml
in this repository, the file graph.dot
will contain the following:
<?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://graphml.graphdrawi
ng.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
<key id="key0" for="edge" attr.name="line" attr.type="int" />
<key id="key1" for="node" attr.name="name" attr.type="string" />
<graph id="G" edgedefault="directed" parse.nodeids="free" parse.edgeids="canonical" parse.order="nodesfirst">
<node id="n0">
<data key="key1">parser.h</data>
</node>
<node id="n1">
<data key="key1">include_entry.h</data>
</node>
<node id="n2">
<data key="key1">graph.h</data>
</node>
<node id="n3">
<data key="key1">_template_.h</data>
</node>
<node id="n4">
<data key="key1">iostream</data>
</node>
<node id="n5">
<data key="key1">thread</data>
</node>
<node id="n6">
<data key="key1">mutex</data>
</node>
<node id="n7">
<data key="key1">deque</data>
</node>
<node id="n8">
<data key="key1">vector</data>
</node>
<node id="n9">
<data key="key1">condition_variable</data>
</node>
<node id="n10">
<data key="key1">boost/filesystem.hpp</data>
</node>
<node id="n11">
<data key="key1">memory</data>
</node>
<node id="n12">
<data key="key1">map</data>
</node>
<node id="n13">
<data key="key1">boost/graph/adjacency_list.hpp</data>
</node>
<node id="n14">
<data key="key1">boost/graph/labeled_graph.hpp</data>
</node>
<edge id="e0" source="n0" target="n4">
<data key="key0">24</data>
</edge>
<edge id="e1" source="n0" target="n5">
<data key="key0">25</data>
</edge>
<edge id="e2" source="n0" target="n6">
<data key="key0">26</data>
</edge>
<edge id="e3" source="n0" target="n7">
<data key="key0">27</data>
</edge>
<edge id="e4" source="n0" target="n8">
<data key="key0">28</data>
</edge>
<edge id="e5" source="n0" target="n9">
<data key="key0">29</data>
</edge>
<edge id="e6" source="n0" target="n10">
<data key="key0">31</data>
</edge>
<edge id="e7" source="n0" target="n1">
<data key="key0">34</data>
</edge>
<edge id="e8" source="n0" target="n2">
<data key="key0">35</data>
</edge>
<edge id="e9" source="n1" target="n11">
<data key="key0">24</data>
</edge>
<edge id="e10" source="n1" target="n12">
<data key="key0">25</data>
</edge>
<edge id="e11" source="n1" target="n4">
<data key="key0">26</data>
</edge>
<edge id="e12" source="n1" target="n8">
<data key="key0">27</data>
</edge>
<edge id="e13" source="n2" target="n4">
<data key="key0">24</data>
</edge>
<edge id="e14" source="n2" target="n13">
<data key="key0">26</data>
</edge>
<edge id="e15" source="n2" target="n14">
<data key="key0">27</data>
</edge>
<edge id="e16" source="n2" target="n1">
<data key="key0">29</data>
</edge>
<edge id="e17" source="n3" target="n4">
<data key="key0">24</data>
</edge>
</graph>
</graphml>
Such graphml file can then be further processed for example via Python:
from pygraphml import Graph
from pygraphml import GraphMLParser
parser = GraphMLParser()
g = parser.parse( 'graph.xml' )
for node in g.nodes():
print( "The file %s includes: " % node['key1'] )
for child in node.children():
print( " -> %s " % child['key1'] )