2012-03-30 7 views
1

Comment convertir un XML en un format lisible par un graphique? J'ai essayé GraphViz, mais j'ai une erreur de syntaxe.Représente xml comme un arbre généalogique

XML d'entrée de l'échantillon:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 
    <EFG> 
     <Events> 
      <Event> 
       <EventId>e2755731202</EventId> 
       <Type>SYSTEM INTERACTION</Type> 
       <Listeners>Project$W1Listener</Listeners> 
      </Event> 
      ... 
     </Events> 
     <EventGraph> 
     <Row> 
      <E>1</E> 
      <E>1</E> 
      <E>0</E> 
      <E>0</E> 
      <E>0</E> 
     </Row> 
     ... 
    </EventGraph> 
</EFG> 

Error: <gvedit>:1: syntax error near line 1 
context: <?xml version="1.0" encoding="UTF-8" standalone="yes" >>> ?> <<< 

Toute suggestion que dois-je faire?

Répondre

1

J'ai fait une recherche sur Google. On dirait que, si vous voulez utiliser GraphViz, que vous aurez besoin pour transformer votre XML en un format compatible avec le schéma GXL XSD:

GXL Schema

Soit Générez votre XML dans le format approprié ou utiliser d'autre un XSL tor le transforme.

+2

Plutôt que GXL, j'utilise DotML, qui est une version codée en XML du langage de points GraphViz. Mais certainement, pour obtenir ces données dans GraphViz, la première étape consiste à les transformer en quelque chose que GraphViz comprend, généralement en utilisant XSLT. –

+0

@MichaelKay +1 point équitable. GraphViz ne saura pas comment gérer le XML que Matt a ci-dessus. Il doit le transformer. –

+0

[L'utilisation de GXL ne semble pas vraiment fonctionner.] (Http://stackoverflow.com/questions/23738054/gxl-for-graphviz-syntax-alternatives) Ce que je fais est écrire un script XSLT ou Perl pour générer le format CSV (un nom de noeud par ligne, une paire de noms de noeud par ligne pour les bords) et le convertir en format Graphviz avec l'un de mes propres scripts, par ex. [csv2dot] (http://www.win.tue.nl/~rp/bin/csv2dot). – reinierpost

Questions connexes