Bonjour à tous,
Je voudrais transformater un document XML avec une xslt en c# afin de l'afficher dans une page HTML. J'arrive à effectuer celle-ci, mais lors de la transformation le code ISO de la XSLT n'est pas prise en compte. Exemple les espaces  .
Je pense qu'il manque une étape avant la transformation, mais je n'ai pas trouvé d'info sur le net
Avez vous une idée ?
Voici le code :
Voici un extrait de XSLT:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 protected void Page_Load(object sender, EventArgs e) { try { string xmlPath = Server.MapPath(@"App_Data/docXml.xml"); string xsltPath = Server.MapPath("xslt.xsl"); // open a XML file XmlReader reader = XmlReader.Create(xmlPath); //Load the XML file in XmlDocument XmlDocument xpathDoc = new XmlDocument(); xpathDoc.Load(reader); // Load XSLT file XslCompiledTransform transform = new XslCompiledTransform(); transform.Load(xsltPath); //initialisation code/fonction C sharp in XSLT XsltArgumentList argsList = new XsltArgumentList(); argsList.AddExtensionObject("pda:MyUtils", new XsltSearchImg()); // Execute the transform and output the results to a file.aspx transform.Transform(xpathDoc, argsList, Response.Output); } catch (Exception ex) { Response.Write(ex.Message); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <xsl:template match="notes|non-normative-note"> <xsl:element name="div"> <xsl:element name="dl"> <xsl:attribute name="class">nrmNote</xsl:attribute> <xsl:element name="dt"> <xsl:value-of select="label"/><xsl:text>#160: </xsl:text> </xsl:element> <xsl:element name="dd"> <xsl:apply-templates select="./*[name(.) != 'label']" /> </xsl:element> </xsl:element> </xsl:element> </xsl:template>
Partager