Croues  | Bonjour
   Pour faire simple j'ai un fichier XML, qui ressemble à ca.   à la base il fait 32000 ligne et je l'ai simplifié, pour avoir une meilleur vu d'ensemble.     Je veux transformer mon fichier, XML en fichier csv.   Le fichier contiendra :
 controlModule.library,controleModule.plc,<parent>.name,<parent>.levelName,<parent>.controlDomain,<parent>.<parent>.name,<parent>.<parent>.levelName,<parent>.<parent>.controlDomain
   par exemple:
   CItect70_Astra,SPSZUL,Rechen,Unit,Zulauf,SteuerungZulauf,Process Cell, (voir en gras sur le fichier xml)
    
  
   J'ai fais un fichier XSL que voici:    
  Code :
 - <?xml version="1.0"?>
 - <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 - 	<xsl:output method="text" encoding="ISO-8859-1" />
 - 	<xsl:template match="/">
 -   <xsl:text>controlModule.library,controleModule.plc,parent.name,parent.levelName,parent.controlDomain,parent.parent.name,parent.parent.levelName,parent.parent.controlDomain</xsl:text>
 -   <xsl:text>
</xsl:text>
 -   <xsl:apply-templates select="//controlModule"/>  
 - 	</xsl:template>
 - 	<xsl:template match="controlModule">
 -   	<xsl:call-template name="writeImportLine">
 -     <xsl:with-param name="name" select= "@name"/>
 -     <xsl:with-param name="Library" select= "@library"/>
 -     <xsl:with-param name="PLC" select= "@plc"/>
 -     <xsl:with-param name="ParentName" select="../../../*/@name"/>
 -     <xsl:with-param name="ParentLevelName" select="../../../*/@levelName"/>
 -     <xsl:with-param name="ParentControlDomain" select="../../../*/@controlDomain"/>
 -     <xsl:with-param name="ParentParentName" select="../../../../../*/@name"/>
 -     <xsl:with-param name="startNewLine" select="position() - 1" />
 -   	</xsl:call-template>
 - 	</xsl:template>
 - 	<xsl:template name="writeImportLine">
 -   <xsl:param name="name"/>
 -   <xsl:param name="Library"/>
 -   <xsl:param name="PLC"/>
 -   <xsl:param name="ParentName"/>
 -   <xsl:param name="ParentLevelName"/>
 -   <xsl:param name="ParentControlDomain"/>
 -   <xsl:param name="ParentParentName"/>
 -   <xsl:param name="startNewLine" />
 -   <xsl:if test="$startNewLine > 0">
 -   	<!-- start new line -->
 -   	<xsl:text>
</xsl:text>
 -   </xsl:if>
 -   <xsl:value-of select="$name"/><xsl:text>,</xsl:text>
 -   <xsl:value-of select="$Library"/><xsl:text>,</xsl:text>
 -   <xsl:value-of select="$PLC"/><xsl:text>,</xsl:text>
 -   <xsl:value-of select="$ParentName"/><xsl:text>,</xsl:text>
 -   <xsl:value-of select="$ParentLevelName"/><xsl:text>,</xsl:text>
 -   <xsl:value-of select="$ParentControlDomain"/><xsl:text>,</xsl:text>
 -   <xsl:value-of select="$ParentParentName"/><xsl:text>,</xsl:text>
 - 	</xsl:template>
 - </xsl:stylesheet>
 
  |  
 
   et j'ai ce résultat, En gras ce qui est faut. (j'ai mit les noms des variables pour mon usage personnel)     controlModule.library,controleModule.plc,parent.name,parent.levelName,parent.controlDomain,parent.parent.name,parent.parent.levelName,parent.parent.controlDomain
 P20GA001,CItect70_Astra,SPSZUL,Rechen,Unit,Zulauf,SteuerungZulauf,
 P96GP051,CItect70_Astra,SPSZUL,Rechen,Unit,Zulauf,SteuerungZulauf,
 P96GS072,CItect70_Astra,SPSZUL,Rechen,Unit,Zulauf,SteuerungZulauf,
 P20AA001,CItect70_Astra,SPSZUL,Rechen,Unit,Zulauf,SteuerungZulauf,
 P20AM001,CItect70_Astra,SPSZUL,Rechen,Unit,Zulauf,SteuerungZulauf,
 P10AP001,CItect70_Astra,SPSZUL,Rechen,Unit,Zulauf,SteuerungZulauf,
 P10AP002,CItect70_Astra,SPSZUL,Rechen,Unit,Zulauf,SteuerungZulauf,
 P10AP003,CItect70_Astra,SPSZUL,Rechen,Unit,Zulauf,SteuerungZulauf,
 P20AB001,CItect70_Astra,SPSZUL,Rechen,Unit,Zulauf,SteuerungZulauf,
 P20AB002,CItect70_Astra,SPSZUL,Rechen,Unit,Zulauf,SteuerungZulauf,
 P20AM301,CItect70_Astra,SPSZUL,Rechen,Unit,Zulauf,SteuerungZulauf,
 P20AM302,CItect70_Astra,SPSZUL,Rechen,Unit,Zulauf,SteuerungZulauf,
 P20GA001,CItect70_Astra,SPSZUL,Rechen3,Unit,Zulauf,SteuerungZulauf,
 P96GP051,CItect70_Astra,SPSZUL,Rechen3,Unit,Zulauf,SteuerungZulauf,
 P96GS072,CItect70_Astra,SPSZUL,Rechen3,Unit,Zulauf,SteuerungZulauf,
 P20AA001,CItect70_Astra,SPSZUL,Rechen3,Unit,Zulauf,SteuerungZulauf,
 P20AM001,CItect70_Astra,SPSZUL,Rechen3,Unit,Zulauf,SteuerungZulauf,
 P10AP001,CItect70_Astra,SPSZUL,Rechen3,Unit,Zulauf,SteuerungZulauf,
 P10AP002,CItect70_Astra,SPSZUL,Rechen3,Unit,Zulauf,SteuerungZulauf,
 P10AP003,CItect70_Astra,SPSZUL,Rechen3,Unit,Zulauf,SteuerungZulauf,
 P20AB001,CItect70_Astra,SPSZUL,Rechen3,Unit,Zulauf,SteuerungZulauf,
 P20AB002,CItect70_Astra,SPSZUL,Rechen3,Unit,Zulauf,SteuerungZulauf,
 P20AM301,CItect70_Astra,SPSZUL,Rechen3,Unit,Zulauf,SteuerungZulauf,
 P20AM302,CItect70_Astra,SPSZUL,Rechen3,Unit,Zulauf,SteuerungZulauf,
   Voici le résultat que j'aurai voulu avoir.
   controlModule.library,controleModule.plc,parent.name,parent.levelName,parent.controlDomain,parent.parent.name,parent.parent.levelName,parent.parent.controlDomain
 P20GA001,CItect70_Astra,SPSZUL,Rechen,Unit,Zulauf,SteuerungZulauf,
 P96GP051,CItect70_Astra,SPSZUL,Rechen,Unit,Zulauf,SteuerungZulauf,
 P96GS072,CItect70_Astra,SPSZUL,Rechen,Unit,Zulauf,SteuerungZulauf,
 P20AA001,CItect70_Astra,SPSZUL,Rech1,Unit,Zulauf,SteuerungZulauf,
 P20AM001,CItect70_Astra,SPSZUL,Rech1,Unit,Zulauf,SteuerungZulauf,
 P10AP001,CItect70_Astra,SPSZUL,ZulaufPW,Unit,Zulauf,SteuerungZulauf,
 P10AP002,CItect70_Astra,SPSZUL,ZulaufPW,Unit,Zulauf,SteuerungZulauf,
 P10AP003,CItect70_Astra,SPSZUL,ZulaufPW,Unit,Zulauf,SteuerungZulauf,
 P20AB001,CItect70_Astra,SPSZUL,ContRech,Unit,Zulauf,SteuerungZulauf,
 P20AB002,CItect70_Astra,SPSZUL,ContRech,Unit,Zulauf,SteuerungZulauf,
 P20AM301,CItect70_Astra,SPSZUL,ContRech,Unit,Zulauf,SteuerungZulauf,
 P20AM302,CItect70_Astra,SPSZUL,ContRech,Unit,Zulauf,SteuerungZulauf,
 P20GA001,CItect70_Astra,SPSZUL,Rechen3,Unit,Zulauf,SteuerungNHV,
 P96GP051,CItect70_Astra,SPSZUL,Rechen3,Unit,Zulauf,SteuerungNHV,
 P96GS072,CItect70_Astra,SPSZUL,Rechen3,Unit,Zulauf,SteuerungNHV,
 P20AA001,CItect70_Astra,SPSZUL,Rech333,Unit,Zulauf,SteuerungNHV,
 P20AM001,CItect70_Astra,SPSZUL,Rech333,Unit,Zulauf,SteuerungNHV,
 P10AP001,CItect70_Astra,SPSZUL,Zulauf3334,Unit,Zulauf,SteuerungNHV,
 P10AP002,CItect70_Astra,SPSZUL,Zulauf3334,Unit,Zulauf,SteuerungNHV,
 P10AP003,CItect70_Astra,SPSZUL,Zulauf3334,Unit,Zulauf,SteuerungNHV,
 P20AB001,CItect70_Astra,SPSZUL,ContRech32321,Unit,Zulauf,SteuerungNHV,
 P20AB002,CItect70_Astra,SPSZUL,ContRech32321,Unit,Zulauf,SteuerungNHV,
 P20AM301,CItect70_Astra,SPSZUL,ContRech32321,Unit,Zulauf,SteuerungNHV,
 P20AM302,CItect70_Astra,SPSZUL,ContRech32321,Unit,Zulauf,SteuerungNHV,
     Depuis hier, je passe énormément de temps à essayer de trouver ce bug. Pour information, j'ai commencé le XSL ya 3 semaines donc je suis un peu débutant. J'ai pas tous les automatismes...
   En esperant avoir bien expliqué mon problème.
   Merci pour votre aide.     |