I have some problems when I want loading an Xslt transformation file. I using XslCompiledTransform object on .Net framework 4.0.
XslCompiledTransform myXslTrans = new XslCompiledTransform();
myXslTrans.Load(<filename>, new XsltSettings(true, false), null);
XPathNavigator nav = v_xdoc.CreateNavigator();
using (TextWriter myWriter = File.CreateText("result.scpt"))
{
myXslTrans.Transform(nav, null, myWriter);
}
I have this crash:
For safety reasons, in this document prohibited DTD XML. To enable DTD processing set on Parse the property on XmlReaderSettings DtdProcessing and pass parameters to the method XmlReader.Create.
When I change my code with XmlReaderSettings :
XslCompiledTransform myXslTrans = new XslCompiledTransform();
myXslTrans.Load(
XmlReader.Create(<filename>, new XmlReaderSettings()
{
DtdProcessing = DtdProcessing.Parse
}),
new XsltSettings(true,false),
null
);
XPathNavigator nav = v_xdoc.CreateNavigator();
using (TextWriter myWriter = File.CreateText("result.scpt"))
{
myXslTrans.Transform(nav, null, myWriter);
}
I have the same crash. My Xslt file header contains a DOCTYPE
<?xml version="1.0"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp " ">
<!ENTITY euro "€" >
]>
<xsl:stylesheet xmlns:xsl="http://ift.tt/tCZ8VR"
xmlns:csv="csv:csv"
version="1.0">
<xsl:output method="text" encoding="utf-8"/>
<xsl:variable name="delimiter" select="';'"/>
...
When i remove the DOCTYPE it work fine but i need it. I don't find the good arguments for load my xslt file. Someone have an idea ?
No comments:
Post a Comment