1

Salut,
J'ai effectué un programme en perl qui me génère automatiquement du XML.
Je voudrai pouvoir afficher simplement cet XML, mais je n'arrive pas à avoir la valeur d'un attribut.
Exemple:

<CACA type="gros">
<NOM> toto </NOM>
</CACA>
je n'arrive pas avoir gros sad
pour le moment j'utilise la syntaxe suivante:
<xsl:value-of select="CACA/type"/>
mais cela ne marche pas.
J'ai besoin de cet attribut pour faire une condition dessus (xsl::if).

Please help me.


NB: l'exemple est completement bidon je suis pas fou à ce point wink

2

Et avec :
<xsl:variable name="moncaca" select="CACA/@type"/>
<xsl:if test=$moncaca='gros'">
... </xsl:if>

?.
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.

3

<xsl:variable name="allowed_memories" select="MEMORIES/@ALLOWED"/>
<xsl:if test="$allowed_memories='true'">
...
</xsl:if>
<xsl:value-of select="MEMORIES/@ALLOWED"/>
<xsl:value-of select="$allowed_memories"/>

Rien ne marche ;(

<MEMORIES ALLOWED="true">
     <MNAME>SPRAM</MNAME>
</MEMORIES>

4

Quel est l'erreur que tu as ?
Tu utilises que navigateur ? Tu as bien installé le composant xsl ?
Est ce qu'on pourrait voir ton xml généré en entier si tout n'est pas ici, ainsi que ton fichier xsl ?
Je ne suis pas un spécialiste du tout, mais on ne sait jamais.
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.

5

Une partie du fichier XML, il fait 35Ko...

<FILE FNAME="/var/vob/ai32/hw_verification/vob/src/32bit/platform/testcases/register/reset_values/xxx/DESC.xml">
<!-- GENERATED BY SimXML Editor.
		 	(C) Infineon Tech. -->

<SIMULATION>
  <TESTCASE>
    <ID>reset_values</ID>
    <REFERENCE>xxxx</REFERENCE>
    <DESCRIPTION>xxxx
    <COMMENT>xx</COMMENT>
  </TESTCASE>
  <REQUIREMENTS>
    <MEMORIES ALLOWED="true">
     <MNAME>x</MNAME>
    </MEMORIES>
    <DERIVATIVES ALLOWED="true">
     <DNAME>x</DNAME>
    </DERIVATIVES>
    <REQUIRE Define="x"/>
  </REQUIREMENTS>
</SIMULATION>
</FILE>

(les x, c'est pour la confidentialité).

<?xml version="1.0" encoding="ISO-8859-1"?>
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
  <body style="font-family:Arial,helvetica,sans-serif;font-size:12pt;
        background-color:#EEEEEE">
    <xsl:for-each select="SUMMARY/FILE/SIMULATION/TESTCASE">
      <div style="background-color:teal;color:white;padding:4px">
        <span style="font-weight:bold;color:white">
        <xsl:value-of select="ID"/></span>
        - <xsl:value-of select="REFERENCE"/>
      </div>
      <b>DESCRIPTION</b><div style="margin-left:20px;margin-bottom:1em;font-size:10pt">
        <xsl:value-of select="DESCRIPTION"/>
      </div>
      <b>COMMENT</b><div style="margin-left:20px;margin-bottom:1em;font-size:10pt;font-style:italic">
        <xsl:value-of select="MEMORIES/ALLOWED"/>
-
<xsl:variable name="allowed_memories" select="MEMORIES/@ALLOWED"/>
<xsl:if test="$allowed_memories='true'">
...
</xsl:if>
<xsl:value-of select="MEMORIES/@ALLOWED"/>
<xsl:value-of select="$allowed_memories"/>
      </div>
      </xsl:for-each>
      <b>MEMORIES</b><div style="margin-left:20px;margin-bottom:1em;font-size:10pt;font-style:italic">
        <xsl:value-of select="MEMORIES/@ALLOWED"/>
      </div>
      <b>DERIVATIVES</b><div style="margin-left:20px;margin-bottom:1em;font-size:10pt;font-style:italic">
        <xsl:value-of select="MEMORIES/ALLOWED"/>
      </div>    
      <b>REQUIRE</b><div style="margin-left:20px;margin-bottom:1em;font-size:10pt;font-style:italic">
        <xsl:value-of select="MEMORIES/ALLOWED"/>
      </div>
  </body>
</html>

6

Le HTML généré est pourri mais ca à la limite c'est pas grave.
sinon c'Est sous firefox derniere version.

7

JackosKing-VNR :
<CACA type="gros">
<NOM> toto </NOM>
</CACA>
je n'arrive pas avoir gros sad
pour le moment j'utilise la syntaxe suivante:
<xsl:value-of select="CACA/type"/>
mais cela ne marche pas.



<xsl:if test="CACA/@type='GROS'">
...
</xsl:if>
?

8

Tout le reste marche à part la récup de l'attribut ?
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.

9

Oui tout marche sauf l'attribut :/

10

Bon erreur de con fait par un con (mauvaise boucle + mauvais path)
<?xml version="1.0" encoding="ISO-8859-1"?>

<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
  <body style="font-family:Arial,helvetica,sans-serif;font-size:12pt;background-color:#EEEEEE">
    <xsl:for-each select="SUMMARY/FILE/SIMULATION">
      <xsl:for-each select="TESTCASE">
        <div style="background-color:teal;color:white;padding:4px">
          <span style="font-weight:bold;color:white">
            <xsl:value-of select="ID"/>
          </span>
          <xsl:value-of select="REFERENCE"/>
        </div>
        <b>DESCRIPTION</b>
        <div style="margin-left:20px;margin-bottom:1em;font-size:10pt">
          <xsl:value-of select="DESCRIPTION"/>
        </div>
        <b>COMMENT</b>
        <div style="margin-left:20px;margin-bottom:1em;font-size:10pt;font-style:italic">
          <xsl:value-of select="COMMENT"/>
        </div>
      </xsl:for-each>
      <xsl:if test="REQUIREMENTS/MEMORIE/@ALLOWED='true'">
        YES
      </xsl:if>
      <xsl:value-of select="REQUIREMENTS/MEMORIES/@ALLOWED"/>
    </xsl:for-each>
  </body>
</html>

11

Merci quand même, la prochaine fois j'attendrai le matin pour poster wink

12

Ah ok grin
Ben désolé de pas l'avoir vu (je dois avoir de la tomate dans les yeux, comme disent les allemands)
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.

13

je suis en allemagne c'est ptêtre pour ca que j'ai pas vu aussi wink

14

boulette

15

Non en fait j'ai un véritable problème sad
J'ai des \n un peu de partout dans mes fichiers XML que je veux bien entendu consercer...
Mais je ne peux pas les transformer.
Pour du XML <-> HTML, en gros il faut des <br/>
Le problème, c'est que cela ne passe pas avec le parser Java (qui a dit que java ca pu -> moi).
Donc si je met des &lt;br/&gt; alors je vois afficher des <br/> au lieu de mon texte: Normal.


En gros le parser java accepte pas des <br/> dans du texte. Du coup il faut remplacer tous les \n par <br/> mais via XSL.
qqn a une solution facile à ce problème?

:/

16

Euh, je ne vois pas pourquoi tu ne pourrais pas faire la transformation en java en fait .
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.

17

En fait, c'est à cause du parseur XML de java qui n'accepte pas les <br/> en plein milieu d'un texte :/

18

cause du parseur XML de java

Mais quel outil/classe utilises tu pour manipuler ton XML ? Du XML, ce n'est que du texte, ou qu'un fichier, au fond, donc il n'y a pas de raison que tu ne puisses pas en faire ce que tu veux. A quel moment et avec quel outil le parses-tu ?
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.

19

J'utilise javax.xml.parsers.
En fait je voulais savoir si:
<toto>
prout prout c'est un texte
<br/>
sur deux lignes
</toto>

etait du XML valide ?

Apparemment oui : content ::= CharData? ((element | Reference | CDSect | PI | Comment) CharData?)*

20

En fait je voulais savoir si:
<toto>
prout prout c'est un texte
<br/>
sur deux lignes
</toto>
etait du XML valide ?


Non, ce n'est pas valide.
Je ne suis pas expert xml, mais n'y a t-il pas un moyen avec les CDATA de rendre valide ce code ou un code équivalent ?
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.

21

Bon j'ai reussi a faire ce que je voulais en mettant chaque ligne dans un <p>.
Pour la validite, tu es sur?

22

Ce matin j'ai vérifié sous WSAD en validant un fichier xml de ce type.
Bon, c'est bien beau que je donne mon avis mais le mieux serait d'entendre un expert sur le sujet (XML/XSL)
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.

23

JackosKing-VNR :
J'utilise javax.xml.parsers.
En fait je voulais savoir si:
<toto>
prout prout c'est un texte
<br/>
sur deux lignes
</toto>
etait du XML valide ?
oui, il est valide
JackosKing-VNR :
Non en fait j'ai un véritable problème sad
J'ai des \n un peu de partout dans mes fichiers XML que je veux bien entendu consercer...
Mais je ne peux pas les transformer.
Pour du XML <-> HTML, en gros il faut des <br/>
Le problème, c'est que cela ne passe pas avec le parser Java (qui a dit que java ca pu -> moi).
Donc si je met des &lt;br/&gt; alors je vois afficher des <br/> au lieu de mon texte: Normal.


En gros le parser java accepte pas des <br/> dans du texte. Du coup il faut remplacer tous les \n par <br/> mais via XSL.
qqn a une solution facile à ce problème?

:/
en XSL, c'est faisable, mais c'est vraiment chaud. Le mieux est de passer par le Java et d'implémenter ton propre transformer handler.
Dans ce handler, quand tu lis les évènements de texte, et dès que tu as un '\n', tu renvoie deux évènement en plus : startElement de 'br' et endElement de 'br'

24

ok merci