[xml xslt] récupérer la valeur d'un champ externe à celui du contexte

récupérer la valeur d'un champ externe à celui du contexte [xml xslt] - XML/XSL - Programmation

Marsh Posté le 30-10-2006 à 13:21:47    

J'essaie de convertir un xml en un autre par le biais d'un script xslt mais je rencontre un problème. Pour illustrer la chose j'ai fait un petit schéma. Mon problème est que j'aimerais récupérer la valeur du champ x1 de A1 quand je me situe dans contexte du champs z2. Je sais que cela se situe dans A1 (mais cela dépend du contexte) mais je n'arrive pas à y accéder. J'ai essayé de passer A1 en argument a une fonction externe au contexte mais je ne pense pas que cela soit la meilleure solution.
Quelqu'un aurait il une idée sur la marche à suivre ? :hello:  
 
http://img167.imageshack.us/img167/2763/graphexmlmu1.png
 
Voici une partie de mon code, il est bugué mais ça résume ce que j'aimerais faire:
 

Code :
  1. <xsl:template match="uses">
  2.     <attribute>
  3.      <type>
  4.         <xsl:value-of select="type" />
  5.       </type>
  6.       <name>
  7.         _<xsl:value-of select="name" />
  8.       </name>
  9.     </attribute>
  10.     <method>
  11.      <name>
  12.          connec_<xsl:value-of select="name" />
  13.        </name>
  14.        <parameter>
  15.         <type>
  16.           <xsl:value-of select="type" />
  17.         </type>
  18.         <name>
  19.           <xsl:value-of select="name" />_
  20.         </name>
  21.        </parameter>
  22.        <return>
  23.         <xsl:call-template name="return" />
  24.        </return>
  25.     </method>
  26.    
  27.     <method>
  28.      <name>
  29.          connec_<xsl:value-of select="name" />
  30.        </name>
  31.        <return>
  32.         <xsl:call-template name="return" >
  33.          <xsl:with-param name="nm" select="$type" />                          C'est ici que j'essaie d'accéder a A1
  34.         </xsl:call-template>
  35.        </return>
  36.     </method>
  37.   </xsl:template>


 

Code :
  1. <xsl:template name="return">
  2.    <xsl:param name="nm" />
  3.     <return>
  4.      
  5.      
  6.        <xsl:for-each select="/interface">
  7.         <xsl:if test="$nm = name">
  8.          <xsl:value-of select="operation/return"/>            J'essaie de récupérer la valeur du champ ici.
  9.         </xsl:if>
  10.        </xsl:for-each>
  11.     </return>
  12.   </xsl:template>


Reply

Marsh Posté le 30-10-2006 à 13:21:47   

Reply

Marsh Posté le 30-10-2006 à 21:23:15    

:hello:

Reply

Marsh Posté le 02-11-2006 à 15:34:01    

Xpath est fait pour ça non?  
 
<xsl:value-of select="/A1/x1" /> ou encore  
<xsl:value-of select="//A1/x1" /> ou  
<xsl:value-of select="../../A1/x1" />  
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed