XML XML transformation à l'aide de XSLT
Je suis en train d'essayer de transformer un fichier XML pour les autres fichier XML à l'aide du fichier XSLT. Ci-dessous le fichier de source:-
Fichier Source
<country isocode="de" pk="8796093055010" uri="http://localhost:9001/ws410/rest/countries/de">
<comments/>
<creationtime>2011-08-03T21:53:35.624+05:30</creationtime>
<dimVals/>
<modifiedtime>2011-08-03T22:05:10.111+05:30</modifiedtime>
<active>true</active>
<name>Germany</name>
<regions>
<region isocode="DE-BW" pk="8796093055011" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-BW"/>
<region isocode="DE-BY" pk="8796093087779" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-BY"/>
<region isocode="DE-BE" pk="8796093120547" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-BE"/>
<region isocode="DE-BR" pk="8796093153315" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-BR"/>
<region isocode="DE-HB" pk="8796093186083" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-HB"/>
<region isocode="DE-HH" pk="8796093218851" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-HH"/>
<region isocode="DE-HE" pk="8796093251619" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-HE"/>
<region isocode="DE-MV" pk="8796093284387" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-MV"/>
<region isocode="DE-NI" pk="8796093317155" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-NI"/>
<region isocode="DE-NW" pk="8796093349923" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-NW"/>
<region isocode="DE-RP" pk="8796093382691" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-RP"/>
<region isocode="DE-SL" pk="8796093415459" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-SL"/>
<region isocode="DE-ST" pk="8796093448227" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-ST"/>
<region isocode="DE-SN" pk="8796093480995" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-SN"/>
<region isocode="DE-SH" pk="8796093513763" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-SH"/>
<region isocode="DE-TH" pk="8796093546531" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-TH"/>
</regions>
<zones>
<zone code="de" pk="8796093056179" uri="http://localhost:9001/ws410/rest/zones/de"/>
</zones>
</country>
Fichier XSLT
<xsl:template match="/country/regions">
<RECORDS>
<xsl:for-each select="region">
<RECORD>
<PROP NAME="isocode">
<PVAL><xsl:value-of select="@isocode"/></PVAL>
</PROP>
<PROP NAME="pk">
<PVAL><xsl:value-of select="@pk"/></PVAL>
</PROP>
<PROP NAME="uri">
<PVAL><xsl:value-of select="@uri"/></PVAL>
</PROP>
</RECORD>
</xsl:for-each>
</RECORDS>
</xsl:template>
Sortie attendue
<RECORDS>
<RECORD>
<PROP NAME="isocode">
<PVAL>DE-BW</PVAL>
</PROP>
<PROP NAME="pk">
<PVAL>8796093055011</PVAL>
</PROP>
<PROP NAME="uri">
<PVAL>http://localhost:9001/ws410/rest/countries/de/regions/DE-BW</PVAL>
</PROP>
</RECORD>
...........
</RECORDS>
Pour vérifier la sortie, j'ai inclus <?xml-stylesheet type="text/xsl" href="<<XSLT file>>"?>
et puis j'ai ouvert le fichier sur le navigateur firefox. Mais le résultat ressemble à la suivante sans les balises personnalisées comme <RECORDS>
, <RECORD>
, <PROP>
2011-08-03T21:53:35.624+05:30
2011-08-03T22:05:10.111+05:30
true
Germany
DE-BW8796093055011http://localhost:9001/ws410/rest/countries/de/regions/DE-BWDE-BY8796093087779http://localhost:9001/ws410/rest/countries/de/regions/DE-BYDE-BE8796093120547http://localhost:9001/ws410/rest/countries/de/regions/DE-BEDE-BR8796093153315http://localhost:9001/ws410/rest/countries/de/regions/DE-BRDE-HB8796093186083http://localhost:9001/ws410/rest/countries/de/regions/DE-HBDE-HH8796093218851http://localhost:9001/ws410/rest/countries/de/regions/DE-HHDE-HE8796093251619http://localhost:9001/ws410/rest/countries/de/regions/DE-HEDE-MV8796093284387http://localhost:9001/ws410/rest/countries/de/regions/DE-MVDE-NI8796093317155http://localhost:9001/ws410/rest/countries/de/regions/DE-NIDE-NW8796093349923http://localhost:9001/ws410/rest/countries/de/regions/DE-NWDE-RP8796093382691http://localhost:9001/ws410/rest/countries/de/regions/DE-RPDE-SL8796093415459http://localhost:9001/ws410/rest/countries/de/regions/DE-SLDE-ST8796093448227http://localhost:9001/ws410/rest/countries/de/regions/DE-STDE-SN8796093480995http://localhost:9001/ws410/rest/countries/de/regions/DE-SNDE-SH8796093513763http://localhost:9001/ws410/rest/countries/de/regions/DE-SHDE-TH8796093546531http://localhost:9001/ws410/rest/countries/de/regions/DE-TH
PS: Lorsque vous ajoutez des mots sans les balises qu'ils apparaissent sur le navigateur web.
Modifier
I am including my xsl file in my source file like
<?xml-stylesheet type="text/xsl" href="countries2.xsl"?>
<?xml version="1.0" encoding="ISO-8859-1"?>
<country isocode="de" pk="8796093055010" uri="http://localhost:9001/ws410/rest/countries/de">
and rest of the xml as source file
mais quand je suis en cochant cette sur navigateur FF montrant erreur d'analyse, tandis que sur l'IE, j'obtiens le résultat suivant
DE-BW8796093055011http://localhost:9001/ws410/rest/countries/de/regions/DE-BWDE-BY8796093087779http://localhost:9001/ws410/rest/countries/de/regions/DE-BYDE-BE8796093120547http://localhost:9001/ws410/rest/countries/de/regions/DE-BEDE-BR8796093153315http://localhost:9001/ws410/rest/countries/de/regions/DE-BRDE-HB8796093186083http://localhost:9001/ws410/rest/countries/de/regions/DE-HBDE-HH8796093218851http://localhost:9001/ws410/rest/countries/de/regions/DE-HHDE-HE8796093251619http://localhost:9001/ws410/rest/countries/de/regions/DE-HEDE-MV8796093284387http://localhost:9001/ws410/rest/countries/de/regions/DE-MVDE-NI8796093317155http://localhost:9001/ws410/rest/countries/de/regions/DE-NIDE-NW8796093349923http://localhost:9001/ws410/rest/countries/de/regions/DE-NWDE-RP8796093382691http://localhost:9001/ws410/rest/countries/de/regions/DE-RPDE-SL8796093415459http://localhost:9001/ws410/rest/countries/de/regions/DE-SLDE-ST8796093448227http://localhost:9001/ws410/rest/countries/de/regions/DE-STDE-SN8796093480995http://localhost:9001/ws410/rest/countries/de/regions/DE-SNDE-SH8796093513763http://localhost:9001/ws410/rest/countries/de/regions/DE-SHDE-TH8796093546531http://localhost:9001/ws410/rest/countries/de/regions/DE-TH
sortie sur IE est sans balises.je me demande est notamment xsl dans ma source xml peut me montrer le bon de sortie après traduction.
- Cette question est balisé XSLT 2.0. Je voudrais essayer de définir la feuille de style à 1.0 comme il est bien connu que les navigateurs ne prend pas en charge XSLT 2.0.
- La première chose que je voudrais faire est d'essayer en changeant l'ordre de votre
<?xml version="1.0" encoding="ISO-8859-1"?>
et<?xml-stylesheet type="text/xsl" href="countries2.xsl"?>
dans le fichier source XML. Le<?xml version="1.0" encoding="ISO-8859-1"?>
doit toujours être le premier.
Vous devez vous connecter pour publier un commentaire.
Le problème n'est pas avec votre code XSLT, c'est avec la façon dont vous êtes en cours d'exécution (ou plutôt, ne fonctionne pas) la transformation. Ce n'est pas tout à fait clair pour moi comment vous essayez de le faire, mais, fondamentalement, le XSLT n'est jamais exécutée, de sorte que vous voyez le texte brut du contenu de votre document source.
C'est un XSLT qui s'exécute: