Je fais une transformation xslt dans mon programme c#. Lorsque j'exécute le xslt seul, le résultat est parfait, mais lorsque je l'exécute à l'intérieur de mon programme c#, il laisse toujours de côté l'élément :
<?xml version="1.0" encoding="UTF-8"?>
En haut du document xml résultant. Mon fichier XSLT ressemble à :
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:hd="http://www.hotdocs.com/schemas/component_library/2009"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xml="http://www.w3.org/XML/1998/namespace">
<xsl:output method="xml" omit-xml-declaration="no" version="1.0" encoding="UTF-8"/>
<xsl:template match="/xsd:schema">
<hd:componentLibrary xmlns:hd="something" version="10">
</hd:componentLibrary>
</xsl:template>
<xsl:template match="text()" />
</xsl:stylesheet>
J'exécute le xslt dans mon programme c# comme ceci :
XPathDocument myXPathDoc = new XPathDocument(PathToXMLDocument);
XslCompiledTransform myXslTrans = new XslCompiledTransform();
myXslTrans.Load(PathToXSLTDocument);
XmlTextWriter myWriter = new XmlTextWriter(PathToOutputLocation, null);
myXslTrans.Transform(myXPathDoc,null,myWriter);
myWriter.Close();
J'ai essayé le document xslt sans la ligne xsl:output, mais cela ne semble pas aider.
Comment puis-je obtenir la balise ?xml en haut de mon fichier xml de sortie ?
Gracias