Création XSL pour transformer XML

Résolu/Fermé
alexdelareunion Messages postés 545 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 9 octobre 2023 - 29 août 2010 à 20:44
alexdelareunion Messages postés 545 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 9 octobre 2023 - 31 août 2010 à 12:16
Bonjour,

J'essaye de transformer le fichier XML suivant (j'ai réduit le nombre de lignes du rowset) :
<eveapi version="2"> 
  <currentTime>2010-08-26 16:01:22</currentTime> 
  <result> 
    <rowset name="transactions" key="transactionID" columns="transactionDateTime,transactionID,quantity,typeName,typeID,price,clientID,clientName,characterID,characterName,stationID,stationName,transactionType,transactionFor"> 
      <row transactionDateTime="2010-08-26 16:01:00" transactionID="1537159578" quantity="1" typeName="Merlin" typeID="603" price="298900.00" clientID="1823827944" clientName="ti schmi" characterID="671136438" characterName="bebedou" stationID="60003829" stationName="Tsuguwa VI - Caldari Navy Assembly Plant" transactionType="sell" transactionFor="corporation" /> 
      <row transactionDateTime="2010-08-26 15:44:00" transactionID="1537146742" quantity="1" typeName="Merlin" typeID="603" price="298900.00" clientID="941668980" clientName="CaptainIKeyes" characterID="671136438" characterName="bebedou" stationID="60003829" stationName="Tsuguwa VI - Caldari Navy Assembly Plant" transactionType="sell" transactionFor="corporation" /> 
      <row transactionDateTime="2010-08-26 15:41:00" transactionID="1537144480" quantity="10" typeName="Sabretooth Light Missile" typeID="212" price="9.99" clientID="1852878058" clientName="UltraSky" characterID="671136438" characterName="bebedou" stationID="60003829" stationName="Tsuguwa VI - Caldari Navy Assembly Plant" transactionType="sell" transactionFor="corporation" /> 
      <row transactionDateTime="2010-08-26 15:22:00" transactionID="1537129937" quantity="1" typeName="Merlin" typeID="603" price="298900.00" clientID="1007196956" clientName="Seton Bragg" characterID="671136438" characterName="bebedou" stationID="60003829" stationName="Tsuguwa VI - Caldari Navy Assembly Plant" transactionType="sell" transactionFor="corporation" /> 
      <row transactionDateTime="2010-08-26 15:21:00" transactionID="1537129082" quantity="1" typeName="Merlin" typeID="603" price="298900.00" clientID="249299947" clientName="Ictera" characterID="671136438" characterName="bebedou" stationID="60003829" stationName="Tsuguwa VI - Caldari Navy Assembly Plant" transactionType="sell" transactionFor="corporation" /> 
      <row transactionDateTime="2010-08-16 22:29:00" transactionID="1527549085" quantity="1" typeName="Cap Recharger I" typeID="1195" price="69999.00" clientID="1757136323" clientName="Nefallla" characterID="671136438" characterName="bebedou" stationID="60003829" stationName="Tsuguwa VI - Caldari Navy Assembly Plant" transactionType="sell" transactionFor="corporation" /> 
    </rowset> 
  </result> 
  <cachedUntil>2010-08-26 16:16:22</cachedUntil> 
</eveapi>


... en quelque chose qui resemblerait à un arbre classique comme ça (une ligne est un élément "transaction") :

<transaction>
    <transactionDateTime>2010-08-26 16:01:00</transactionDateTime>
    <transactionID>1537159578</transactionID>
    <quantity>1</quantity>
    <etc></etc>
</transaction>
<transaction>
...
</transaction>
...
...
...


pour ce faire j'ai essayé de coder une feuille de style xsl, mais ça marche pas du tout, access n'en veut pas (erreur "Déclaration xml non valide")

<?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" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
		<?xml version="1.0" encoding="UTF-8"?>
		<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" generated="2010-08-27T03:21:05">
			<xsl:apply-templates select="eveapi/result/rowset"/>
		</dataroot>
    </xsl:template>
    <xsl:template match="eveapi/result/rowset">
		<xsl:element name="transaction">
			<xsl:apply-templates select="eveapi/result/rowset/row"/>
		</xsl:element>
    </xsl:template>
    <xsl:template match="eveapi/result/rowset/row">
		<xsl:element name="transactionDateTime">
			<xsl:value-of select="./@transactionDateTime"/>
		</xsl:element>
		<xsl:element name="transactionID">
			<xsl:value-of select="./@transactionID"/>
		</xsl:element>
		<xsl:element name="quantity">
			<xsl:value-of select="./@quantity"/>
		</xsl:element>
		<xsl:element name="typeName">
			<xsl:value-of select="./@typeName"/>
		</xsl:element>
		<xsl:element name="typeID">
			<xsl:value-of select="./@typeID"/>
		</xsl:element>
		<xsl:element name="price">
			<xsl:value-of select="./@price"/>
		</xsl:element>
		<xsl:element name="clientID">
			<xsl:value-of select="./@clientID"/>
		</xsl:element>
		<xsl:element name="clientName">
			<xsl:value-of select="./@clientName"/>
		</xsl:element>
		<xsl:element name="characterID">
			<xsl:value-of select="./@characterID"/>
		</xsl:element>
		<xsl:element name="characterName">
			<xsl:value-of select="./@characterName"/>
		</xsl:element>
		<xsl:element name="stationID">
			<xsl:value-of select="./@stationID"/>
		</xsl:element>
		<xsl:element name="stationName">
			<xsl:value-of select="./@stationName"/>
		</xsl:element>
		<xsl:element name="transactionType">
			<xsl:value-of select="./@transactionType"/>
		</xsl:element>
		<xsl:element name="transactionFor">
			<xsl:value-of select="./@transactionFor"/>
		</xsl:element> 
    </xsl:template>
</xsl:stylesheet>


Pouvez-vous m'aider à débugger ma feuille de style pour que j'y comprenne enfin quelque chose ?
Merci !


A voir également:

3 réponses

alexdelareunion Messages postés 545 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 9 octobre 2023 142
30 août 2010 à 06:11
up
0
alexdelareunion Messages postés 545 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 9 octobre 2023 142
31 août 2010 à 01:18
UP
0
alexdelareunion Messages postés 545 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 9 octobre 2023 142
31 août 2010 à 12:16
Ouais ! j'ai réussi !!!!
0