Asp net+There are multiple root elements. [Résolu]

Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
- - Dernière réponse : cs_jimmy69
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
- 11 déc. 2006 à 10:00
Bonjour,je bosse avec c# 1.1 webform etj'essayes en vain d'applique une transformation xslt sur un fichier xml issue d'un dataset afin d'obtenir un fichier html.!lors de l'execution du code j'obtiens ce message d'erreur :There are multiple root elements. Line 4, position 2.J'ai beauc cherche je trouve pas ce qui se passe si quelqu'un avait une idée, voici mon code et un bout de mes fichiers xml xslt.Le fichier xml :      VORTIGON6-1    WIN 2003 SP1 english       administrator    .pwroot        VORTIGON6-4    WN 2003 SR2 English    administrator    .pwroot        VORTIGON6-5    WIN 2003 SR2 Deutch    administrator    .pwroot            Computer NameOSUserPwdet le bout de code :string xmlSource = "xmlMachineTest.xml";string xslSource = "XSLTMachine.xsl";string output = Server.MapPath("RESULT_XSLT.html");XmlUrlResolver resolver = new XmlUrlResolver( );resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;XslTransform xsltrans=new XslTransform();xsltrans.Load(Server.MapPath(xslSource),resolver);xsltrans.Transform(Server.MapPath(xmlSource),output,resolver);Je vous remercieChristophe
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
129
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
30 décembre 2007
3
3
Merci
Salut,

Regarde bien le code de ton fichier XSLT : l'élément xsl:stylesheet est immédiatement fermé.
<hr size="2" width="100%" /><?xml version="1.0"encoding="UTF-8"?>

<stylesheet version="1.0"xmlns="http://www.w3.org/1999/XSL/Transform">

</stylesheet>

<xsl:templatematch="/">

...

<hr size="2" width="100%" />Donc ta feuille de style n'est pas un document XML bien formé. Supprime la balise fermante surnuméraire à la ligne 3, et ferme l'élément stylesheet à la fin du fichier, et le chargement de ta feuille de style devrait se passer sans problèmes.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 221 internautes nous ont dit merci ce mois-ci

Commenter la réponse de dgouttegattat
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
0
Merci
discussion redirigée sur www.aspfr.com 

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Commenter la réponse de sebmafate
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
0
Merci
salut salut  628847 dgouttegattat

Je viens de déplacer la balise fermante </stylesheet> du fichier xsl mais quand j'execute l'application j'ai cette erreur :

'xsl' is an undeclared namespace. Line 4, position 2

j'ai donc regarde la structure du fichier xsl et remarque a la fin du fichier qu'il y avait une balise fermante :
</

xsl:stylesheet>
mais pas ouvrante

je l'ai donc rajoute et quand j'execute j'ai toujours cette erreur
'xsl' is an undeclared namespace. Line 3, position 2.

voici le fichier xsl modifie qui pour moi est correct

<?xmlversion ="1.0"encoding="UTF-8"?>

<stylesheetversion="1.0"xmlns="http://www.w3.org/1999/XSL/Transform">

<xsl:stylesheet>

<xsl:templatematch="/">

<tableborder="1"align="center">

<tr>

<thbgcolor="grey">Computer Name
</th>

<thbgcolor="grey">OS
</th>

<thbgcolor="grey">User
</th>

<thbgcolor="grey">Pwd
</th>

</tr>

<xsl:for-eachselect="NewDataSet/TableMachine">

<tr>

<td>

<xsl:value-ofselect="ComputerName"/>

</td>

<td>

<xsl:value-ofselect="OperatingSystem"/>

</td>

<td>

<xsl:valueofselect="User"/>

</td>

<td>

<xsl:valueofselect="Pwd"/>

</td>

</tr>

</xsl:for-each>

</table>

</xsl:template></

xsl:stylesheet></

stylesheet>

Si tu vois autre chose !
Je te remercie
Christophe
Commenter la réponse de cs_jimmy69
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
0
Merci
Ca tourne

J'ai du modifie mon fichier xsl et enlever la ligne stylesheet

voici le fichier correct xsl :

<?

xmlversion="1.0"encoding="ISO-8859-1"?><

xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:templatematch="/">

<tableborder="1"align="center">

<tr><tdcolspan="5">Information about machine
</td></tr>

<tr>

<thbgcolor="grey">Computer Name
</th>

<thbgcolor="grey">Operating System
</th>

<thbgcolor="grey">User
</th>

<thbgcolor="grey">Pwd
</th>

</tr>

<xsl:for-eachselect="NewDataSet/TableMachine">

<tr>

<td>

<xsl:value-ofselect="ComputerName"/>

</td>

<td>

<xsl:value-ofselect="OperatingSystem"/>

</td>

<td>

<xsl:value-ofselect="User"/>

</td>

<td>

<xsl:value-ofselect="Pwd"/>

</td>

</tr>

</xsl:for-each>

</table>

</xsl:template></

xsl:stylesheet>

Merci beaucoup
Christophe
Commenter la réponse de cs_jimmy69