Methods for GXL manipulations in package graph
GXL http://www.gupro.de/GXL is "an XML sublanguage designed to be a standard exchange format for graphs". This document describes tools in the graph package for importing GXL data to R and for writing graph data out as GXL.
fromGXL |
currently returns a graphNEL when possible. This
function is based on |
toGXL |
for an input of class "graphNEL", returns an object of class c("XMLInternalDOM", "XMLOutputStream"); see the example for how to convert this to a text stream encoding XML |
dumpGXL |
returns an R list with all the node, edge, and named attribute information specified in the GXL stream |
validateGXL |
returns silently (invisibly returns the parsed tree) for a DTD-compliant stream, or is otherwise very noisy |
con = connection: returns a graphNEL based on a parsing of the GXL stream on the connection
con = connection: returns an R list based on a parsing of the GXL stream on the connection
con = connection: checks the GXL stream against its DTD
object = graphNEL: creates an XMLInternalDOM representing the graph in GXL
At present, toGXL does not return a validating GXL stream
because XML package does not properly handle the dtd and namespaces
arguments to xmlTree. This is being repaired. To fix
the stream, add
<!DOCTYPE gxl SYSTEM "http://www.gupro.de/GXL/gxl-1.0.1.dtd">
as second record in the output.
Some structures in a graphNEL and some tags in GXL may not be handled at this time.
Vince Carey <stvjc@channing.harvard.edu>
sf <- file(system.file("GXL/simpleExample.gxl", package="graph")) show(fromGXL(sf)) print(dumpGXL(sf)) close(sf) #validateGXL(sf) # bad <- file(system.file("GXL/c2.gxl", package="graph")) # here's how you can check if the GXL is well-formed, if # you have a libxml2-based version of R XML package # # try( validateGXL(bad) ) # gR <- graphNEL(nodes=letters[1:4], edgeL=list( a=list(edges=4), b=list(edges=3), c=list(edges=c(2,1)), d=list(edges=1)), edgemode="directed") # # following requires that you are using XML bound with recent libxml2 # #an <- as.numeric #if (an(libxmlVersion()$major)>=2 && an(libxmlVersion()$minor)>=4) ## since toGXL returns an XML object, we need to attach the XML ## package. library("XML") cat(saveXML(toGXL(gR)$value())) wtd <- file(system.file("GXL/kmstEx.gxl", package="graph")) wtdg <- fromGXL(wtd) close(wtd) print(edgeWeights(wtdg))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.