Asp net+There are multiple root elements.

Résolu
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 - 8 déc. 2006 à 12:40
cs_jimmy69 Messages postés 778 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

4 réponses

dgouttegattat Messages postés 129 Date d'inscription mardi 22 novembre 2005 Statut Membre Dernière intervention 30 décembre 2007 3
8 déc. 2006 à 13:18
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.
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
8 déc. 2006 à 13:28
discussion redirigée sur www.aspfr.com 

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
0
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 1
11 déc. 2006 à 09:41
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
0
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 1
11 déc. 2006 à 10:00
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
0
Rejoignez-nous