Bonjour,
je vais essayer d'expliquer mon problème le plus clairement possible :
J'ai un fichier .svg de ce type :
Que je pense il est possible de résumer comme suit (pour ce que je souhaite en faire -> voir plus loin) :<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
<!ATTLIST svg xmlns: xlink CDATA #FIXED "http://www.w3.org/1999/xlink">
]>
<!-- Generated by neato version 1.16 (Tue Sep 14 22:15:32 UTC 2004)
For user: Bill Gates Title: RNA polymerase II Pages: 1 -->
<svg width="602pt" height="679pt"
viewBox = "-1 -1 601 678"
xmlns="http://www.w3.org/2000/svg" xmlns: xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform = "scale(0.597166)"
style="font-family:Times-Roman;font-size:14.00;">
<title>RNA polymerase II</title>
<text text-anchor="middle" style="font-size:10.00;" x="499" y="1120">RNA POLYMERASE II Network of Protein Complexes (27 complex(es), 133 proteins -- as of Jun 07, 2007)</text>
<g id="edge24" class="edge"><title>YNL236w-><PolII-Med></title>
<path style="fill:none;stroke:silver;" d="M177,764C185,749 194,734 202,718"/>
<ellipse cx="202" cy="718" rx="1" ry="1" style="fill:none;stroke:silver;"/>
</g>
<g id="node23" class="node"><title>YLR071c</title>
<a xlink:href="http://pin.mskcc.org/web/graphviz.ProteinServlet?protein=YLR071c&species=2" xlink:title="YLR071c">
<ellipse cx="212" cy="793" rx="12" ry="4" style="fill:skyblue;stroke:skyblue;"/>
<text text-anchor="middle" style="font-size:5.00;fill:navy;" x="212" y="795">YLR071c</text>
</a>
</g>
</g>
</svg>
Je voudrais le transformer en ce type de fichier :<svg>
<g>
<g class="edge">
<title>OrigineEdge->DestEdge</title>
</g>
<g class="node">
<title>Noeud</title>
</g>
</g>
</svg>
J'essaye désepérément de tirer quelque chose du processeur xslt, mais tout ce que j'arrive à avoir c'est l'ensemble des éléments textes du fichier de départ. C'est à dire un fichier de ce style (ici il n'est pas complet):<graphml...>
<graph edgedefault="undirected">
<node id="Noeud" />
<edge id="OrigineEdge_DestEdge" source="OrigineEdge" target="DestEdge" />
</graph>
</graphml>
Avec en prime les noeuds "node" en double.<?xml version="1.0" encoding="utf-8"?>
RNA polymerase II
RNA POLYMERASE II Network of Protein Complexes (27 complex(es), 133 proteins -- as of Jun 07, 2007)
YNL236w-><PolII-Med>
YNL236w-><Mediator>
YPL042c-><PolII-Med>
YPL042c-><Mediator>
YPL042c-><Srb8-11>
YPL042c-><Srb8/9/10/11>
YNL025c-><PolII-Med>
YNL025c-><Mediator>
YNL025c-><Srb8-11>
YNL025c-><Srb8/9/10/11>
YHR041c-><PolII-Med>
YMR033w
YMR033w
YGR275w
YGR275w
YDR073w
YDR073w
YNR023w
YNR023w
Voici mon programme :
Dans un premier temps je ne cherchais qu'à récupérer les noeuds (ça me semblait plus facile), je n'ai pas beaucoup d'expérience en xslt alors peut être est-ce une erreur bateau... en tout cas entre tutoriel et bouquin je n'ai pas trouvé...<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns: xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8"/>
<xsl:template match="/svg">
<graph>
<xsl:apply-templates select="//g"/>
</graph>
</xsl:template>
<xsl:template match="//g[@class=node]">
</xsl:template>
</xsl:stylesheet>
Merci beaucoup de vos conseils.
Partager