Création XSL pour transformer XML
Résolu
alexdelareunion
Messages postés
555
Statut
Membre
-
alexdelareunion Messages postés 555 Statut Membre -
alexdelareunion Messages postés 555 Statut Membre -
Bonjour,
J'essaye de transformer le fichier XML suivant (j'ai réduit le nombre de lignes du rowset) :
... en quelque chose qui resemblerait à un arbre classique comme ça (une ligne est un élément "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")
Pouvez-vous m'aider à débugger ma feuille de style pour que j'y comprenne enfin quelque chose ?
Merci !
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:
- Création XSL pour transformer XML
- Xml viewer - Télécharger - Édition & Programmation
- Creation compte gmail - Guide
- Création site web - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Création compte google - Guide