Boost logo

Boost Users :

Subject: [Boost-users] read_graphml: read more than 1 graph from the same graphml file
From: Bartha Attila (abartha_at_[hidden])
Date: 2012-11-12 13:20:23


Hello ! Is there a way a to read more than one graph from a .graphml file using read_graphml ? Here's what I tried: -open an input stream to the graphml file; -call a function to read the graph from the file (the function uses read_graphml) and print the graph to stdout; -call the same function again, hoping that the second graph from the file will be read; -close the file input stream. If I call the function once, it works fine and returns the first graph defined in the graphml file. If I call the function the twice, I get the following runtime exception:  'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::property_tree::ptree_bad_path> >'  what():  No such node (graphml) The graphml file looks like this : <graphml ....header stuff... > <key id= ...key definitions...>   <graph id="TestSite1" edgedefault="undirected">     <node id="node0"> <data key="map">map1</data> <data key="x">5.0</data> <data key="y">1.0</data> </node>     <node id="node1"> <data key="map">map1</data> <data key="x">5.0</data> <data key="y">4.0</data> </node>    <edge source="node0" target="node1"/>   </graph>   <graph id="TestSite2" edgedefault="undirected">     <node id="node0"> <data key="map">map3</data> <data key="x">6.0</data> <data key="y">2.0</data> </node>     <node id="node1"> <data key="map">map4</data> <data key="x">7.0</data> <data key="y">9.0</data> </node>    <edge source="node0" target="node1"/>   </graph></graphml> I can correctly get the data of TestSite1 graph if I call the function once. How can I get the TestSite2 graph from the same file, or, for that matter, how can I get one specific graph (ex TestSiteN) ? Thanx for any help, -attoparsec-



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net