本文整理匯總了C#中Saxon.Api.Processor.NewXsltCompiler方法的典型用法代碼示例。如果您正苦於以下問題:C# Processor.NewXsltCompiler方法的具體用法?C# Processor.NewXsltCompiler怎麽用?C# Processor.NewXsltCompiler使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Saxon.Api.Processor
的用法示例。
在下文中一共展示了Processor.NewXsltCompiler方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: Transform
public static void Transform(Uri StyleSheet, String Input,Encoding Encoding,out String Output)
{
Processor processor = new Processor();
XdmNode input = processor.NewDocumentBuilder().Build(new XmlTextReader(new StringReader(Input)));
processor.SetProperty("http://saxon.sf.net/feature/preferJaxpParser", "true");
XsltCompiler compiler = processor.NewXsltCompiler();
XsltExecutable executable = compiler.Compile(StyleSheet);
XsltTransformer transformer = executable.Load();
transformer.InitialContextNode = input;
Serializer serializer = new Serializer();
MemoryStream stream = new MemoryStream();
System.IO.StreamWriter writer = new StreamWriter(stream);
serializer.SetOutputWriter(writer);
transformer.Run(serializer);
Output = Encoding.GetString(stream.ToArray());
writer.Close();
stream.Close();
}
示例2: Xsl2Processor
public Xsl2Processor()
{
// Create a Processor instance.
_processor = new Processor();
_compiler = _processor.NewXsltCompiler();
}
示例3: Transform
public string Transform(string baseDir, string sourceXml, string releaseType, string version)
{
var sourceXsl = SchematronBuilder.CheckForNewerSchematron(baseDir, releaseType, version);
// Create a Processor instance.
var processor = new Processor();
var result = new StringBuilder();
var xmlDocumentBuilder = processor.NewDocumentBuilder();
xmlDocumentBuilder.BaseUri = new Uri(baseDir);
var xsltCompiler = processor.NewXsltCompiler();
xsltCompiler.ErrorList = new ArrayList();
var xmlToValidate = xmlDocumentBuilder.Build(new StringReader(sourceXml));
var compiledXsl = xsltCompiler.Compile(new XmlTextReader(sourceXsl));
var xmlValidator = compiledXsl.Load();
// Set the root node of the source document to be the initial context node.
xmlValidator.InitialContextNode = xmlToValidate;
// BaseOutputUri is only necessary for xsl:result-document.
xmlValidator.BaseOutputUri = new Uri(Path.Combine(baseDir, "output.xml"));
var validationSerializer = new Serializer();
using (var resultsWriter = new StringWriter(result))
{
validationSerializer.SetOutputWriter(resultsWriter);
xmlValidator.Run(validationSerializer);
}
return result.ToString();
}
示例4: ImportSchematron
public static string ImportSchematron(string baseDir, string schemaPath, string xsltPath)
{
// Builds a new XSLT file from a schematron file.
// This only needs to be done when the schematron file changes.
var sxnProc = new Processor();
var outPath = xsltPath;
var baseXsltPath = Path.Combine(baseDir, @"Content\Saxon\");
var schConverter = new string[]
{
baseXsltPath + "iso_dsdl_include.xsl",
baseXsltPath + "iso_abstract_expand.xsl",
baseXsltPath + "iso_svrl_for_xslt2.xsl"
};
var schemaUri = new Uri(schemaPath);
var xslComp = sxnProc.NewXsltCompiler();
//////transform-1/////
var xslUri = new Uri(schConverter[0]);
var xslExec = xslComp.Compile(xslUri);
var xslTrans = xslExec.Load();
var domOut1 = new DomDestination(new XmlDocument());
using(var fs = File.Open(schemaPath, FileMode.Open, FileAccess.Read))
{
xslTrans.SetInputStream(fs, schemaUri); // set baseUri
xslTrans.Run(domOut1);
}
//////transform-2/////
xslUri = new Uri(schConverter[1]);
xslExec = xslComp.Compile(xslUri);
xslTrans = xslExec.Load();
var domOut2 = new DomDestination(new XmlDocument());
var docBuilder = sxnProc.NewDocumentBuilder();
docBuilder.BaseUri = schemaUri;
var inputDoc2 = docBuilder.Wrap(domOut1.XmlDocument);
xslTrans.InitialContextNode = inputDoc2;
xslTrans.Run(domOut2);
//////transform-3/////
xslUri = new Uri(schConverter[2]);
xslExec = xslComp.Compile(xslUri);
xslTrans = xslExec.Load();
var inputDoc3 = docBuilder.Wrap(domOut2.XmlDocument);
xslTrans.InitialContextNode = inputDoc3;
var serializer = new Serializer();
using (TextWriter tw = new StreamWriter(outPath, false))
{
serializer.SetOutputWriter(tw);
serializer.SetOutputProperty(Serializer.INDENT, "no");
xslTrans.Run(serializer);
}
return outPath;
}
示例5: Main
static void Main(string[] args)
{
String s1 = @"<xsl:stylesheet version='2.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'><xsl:output method='xml' indent='yes'/><xsl:template match='/'>";
String s2 = "This is running an XSLT engine by <xsl:value-of select=\"system-property('xsl:vendor')\" /> <a href=\"{system-property('xsl:vendor-url')}\"><xsl:value-of select=\"system-property('xsl:vendor-url')\" /></a> implementing XSLT v<xsl:value-of select=\"system-property('xsl:version')\" /> ";
String s3 = @"\n<xsl:apply-templates/></xsl:template><xsl:template match='@*|node()'> ";
String s4 = @"<xsl:copy><xsl:apply-templates select='@*|node()'/></xsl:copy></xsl:template></xsl:stylesheet>";
String str = s1 + s2 + s3 + s4;
//Run Saxon
//new SaxonTransform().doTransform(args, "Transform");
//Run Saxon s9 api
// Create a Processor instance.
Processor processor = new Processor();
// Load the source document.
XdmNode input = processor.NewDocumentBuilder().Build(XmlReader.Create(new StringReader(str)));
XsltCompiler compiler = processor.NewXsltCompiler();
//although it is not required in this example, we need to set otherwise exception will be thrown
compiler.BaseUri = new Uri("http://dummyurl.com");
// Create a transformer for the stylesheet.
XsltTransformer transformer = compiler.Compile(XmlReader.Create(new StringReader(str))).Load();
// BaseOutputUri is only necessary for xsl:result-document.
//transformer.BaseOutputUri = new Uri("http://dummyurl.com");
// Set the root node of the source document to be the initial context node.
transformer.InitialContextNode = input;
transformer.SetParameter(new QName("", "", "maxmin"), new XdmAtomicValue("parm1"));
transformer.SetParameter(new QName("", "", "pricestock"), new XdmAtomicValue("parm2"));
// Create a serializer.
Serializer serializer = new Serializer();
// Set the root node of the source document to be the initial context node
//transformer.InitialTemplate = new QName("","","go");
serializer.SetOutputWriter(Console.Out);
serializer.SetOutputProperty(Serializer.INDENT, "yes");
// serializer.SetOutputFile(Server.MapPath("test.html")); //for file
// Transform the source XML to System.out.
transformer.Run(serializer);
//Call the SaxonMediator
SaxonMediator mediator = new SaxonMediator();
//mediator.Transform(null, Template template, Package package)
//wait for user to exit
Console.ReadLine();
}
示例6: Process
private static XmlDocument Process (XmlReader funcSeq, XmlReader extTransform, Uri baseUri) {
Processor processor = new Processor();
XdmNode input = processor.NewDocumentBuilder().Build(funcSeq);
XsltCompiler compiler = processor.NewXsltCompiler();
compiler.BaseUri = baseUri;
XsltTransformer transformer = compiler.Compile(extTransform).Load();
transformer.InitialContextNode = input;
DomDestination result = new DomDestination();
transformer.Run(result);
return result.XmlDocument;
}
示例7: SaxonDotNetTransform
public SaxonDotNetTransform(string sTransformName, string sTargetLanguageCode)
: base(sTargetLanguageCode)
{
// Create a Processor instance.
m_processor = new Processor();
m_compiler = m_processor.NewXsltCompiler();
// Load transform from file
var uri = new Uri(sTransformName);
var errorList = new List<StaticError>();
m_compiler.ErrorList = errorList;
var t = m_compiler.Compile(uri);
m_transformer = t.Load();
}
示例8: Init
private void Init (HttpContext context) {
AppSettings baseXslt = new AppSettings();
String xsltUri = context.Server.MapPath(baseXslt.GetSetting("baseTemplate"));
Uri xUri = new Uri(xsltUri);
this._Resolver = new XmlUrlResolver();
this._Resolver.Credentials = CredentialCache.DefaultCredentials;
this._TemplateStream = (Stream)this._Resolver.GetEntity(xUri, null, typeof(Stream));
this._Processor = new Processor();
this._Compiler = _Processor.NewXsltCompiler();
this._Compiler.BaseUri = xUri;
this._Template = this._Compiler.Compile(_TemplateStream);
this._IS_INITIALIZED = true;
}
示例9: xml2HtmlTree
private string xml2HtmlTree()
{
XmlDocument xml = new XmlDocument();
xml.LoadXml(this.Xsd);
StreamReader xsl = new StreamReader(AppDomain.CurrentDomain.BaseDirectory + "/Areas/MSM/Resources/Stylesheets/xsd2htmlTree.xslt");
Processor processor = new Processor();
XdmNode input = processor.NewDocumentBuilder().Build(xml);
XsltTransformer transformer = processor.NewXsltCompiler().Compile(xsl).Load();
transformer.InitialContextNode = input;
StringWriter writer = new StringWriter();
Serializer serializer = new Serializer();
serializer.SetOutputWriter(writer);
transformer.Run(serializer);
return writer.ToString();
}
示例10: Main
static void Main(string[] args)
{
string infile = @"c:\daisybooks\verysimplebook\verysimplebook.xml";
string infile_dir = @"c:\daisybooks\verysimplebook\";
string xsltfile = @"c:\devel\amis\trunk\amis\bin\xslt\dtbook\dtbook2xhtml.xsl";
string outfile = @"c:\devel\amis\sandbox\dtbooktransformer_out.xml";
// Create a Processor instance.
Processor processor = new Processor();
// Load the source document
XdmNode input = processor.NewDocumentBuilder().Build(new Uri(infile));
// Create a transformer for the stylesheet.
XsltTransformer transformer =
processor.NewXsltCompiler().Compile(new Uri(xsltfile)).Load();
QName basedir = new QName("", "baseDir");
List<XdmAtomicValue> elementNames = new List<XdmAtomicValue>();
elementNames.Add(new XdmAtomicValue(infile_dir));
XdmValue basedir_value = new XdmValue(elementNames);
transformer.SetParameter(basedir, basedir_value);
// Set the user-written XmlResolver
UserXmlResolver runTimeResolver = new UserXmlResolver();
runTimeResolver.Message = "** Calling transformation-time XmlResolver: ";
transformer.InputXmlResolver = runTimeResolver;
// Set the root node of the source document to be the initial context node
transformer.InitialContextNode = input;
/*
* String outfile = "OutputFromXsltSimple2.xml";
Serializer serializer = new Serializer();
serializer.SetOutputStream(new FileStream(outfile, FileMode.Create, FileAccess.Write));
*/
// Create a serializer, with output to the standard output stream
Serializer serializer = new Serializer();
serializer.SetOutputWriter(Console.Out);
// Transform the source XML and serialize the result document
transformer.Run(serializer);
Console.ReadLine();
}
示例11: DoTransform
internal XmlDocument DoTransform()
{
Processor processor = new Processor();
XdmNode input = processor.NewDocumentBuilder().Wrap(_docToTransform);
// Create a compiler
XsltCompiler compiler = processor.NewXsltCompiler();
DocumentBuilder builder = processor.NewDocumentBuilder();
XdmNode xsltSheetNode = builder.Build(_xsltDocReader);
// Compile the stylesheet
XsltTransformer transformer = compiler.Compile(xsltSheetNode).Load();
// Run the transformation
transformer.InitialContextNode = input;
DomDestination result = new DomDestination();
transformer.Run(result);
return result.XmlDocument;
}
示例12: Main
public static void Main()
{
using (FileStream streamXml = File.OpenRead(XmlPath))
{
using (FileStream streamXsl = File.OpenRead(XsltPath))
{
Processor processor = new Processor();
DocumentBuilder builder = processor.NewDocumentBuilder();
Uri uri = new Uri("urn:catalogue");
builder.BaseUri = uri;
XdmNode input = builder.Build(streamXml);
XsltTransformer transformer = processor.NewXsltCompiler().Compile(streamXsl).Load();
transformer.InitialContextNode = input;
Serializer serializer = new Serializer();
serializer.SetOutputFile(HtmlPath);
transformer.Run(serializer);
}
}
Console.WriteLine("catalogue.html created successfully");
}
示例13: SaxonXsltTransform
/// <summary>
/// Initializes a new instance of the <see cref="SaxonXsltTransform"/> class.
/// </summary>
/// <param name="context">The context.</param>
/// <param name="stylesheetMarkup">The stylesheet markup.</param>
/// <exception cref="SageHelpException"></exception>
public SaxonXsltTransform(SageContext context, XmlDocument stylesheetMarkup)
{
Contract.Requires<ArgumentNullException>(context != null);
Contract.Requires<ArgumentNullException>(stylesheetMarkup != null);
UrlResolver resolver = new UrlResolver(context);
processor = new Processor();
XdmNode input = processor.NewDocumentBuilder().Build(stylesheetMarkup);
XsltTransformer transformer = processor.NewXsltCompiler().Compile(XmlReader.Create(stylesheetMarkup.OuterXml)).Load();
try
{
//this.processor.Load(stylesheetMarkup, XsltSettings.TrustedXslt, resolver);
dependencies.AddRange(resolver.Dependencies);
}
catch //(Exception ex)
{
//ProblemInfo problem = this.DetectProblemType(ex);
//throw new SageHelpException(problem, ex);
}
}
示例14: _convert
private static SVGImage.SVG.SVGImage _convert(XmlReader xml)
{
var processor = new Processor();
// Load the source document
XdmNode input = processor.NewDocumentBuilder().Build(xml);
// Create a transformer for the stylesheet
if (transformer == null)
{
var file = Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase), "libs\\pMML2SVG\\pmml2svg.xsl");
var xslt = XmlReader.Create(file);
transformer = processor.NewXsltCompiler().Compile(xslt).Load();
}
// Set the root node of the source document to be the initial context node
transformer.InitialContextNode = input;
var ms = new MemoryStream();
// Create a serializer
var serializer = new Serializer();
serializer.SetOutputStream(ms);
// Transform the source XML
transformer.Run(serializer);
serializer.Close();
ms.Position = 0;
var img = new SVGImage.SVG.SVGImage();
img.SetImage(ms);
return img;
}
示例15:
public XsltTransformationManager
(
Processor processor,
Transform transform,
XmlUrlResolver resolver,
Serializer serializer,
Dictionary<string, XsltTransformer> xsltHashtable,
Hashtable xmlSourceHashtable,
Hashtable xdmNodeHashtable,
Hashtable namedXsltHashtable,
Hashtable namedXsltETagIndex,
Hashtable xdmNodeETagIndex,
Uri baseXsltUri,
String baseXsltUriHash,
String baseXsltName
) {
m_baseXsltUri = baseXsltUri;
m_baseXsltUriHash = baseXsltUriHash;
m_baseXsltName = baseXsltName;
m_transform = transform;
m_xsltHashtable = xsltHashtable;
m_processor = processor;
m_compiler = m_processor.NewXsltCompiler();
m_sourceHashtable = xmlSourceHashtable;
m_resolver = resolver;
m_compiler.XmlResolver = m_resolver;
m_builder = m_processor.NewDocumentBuilder();
m_serializer = serializer;
m_xdmNodeHashtable = xdmNodeHashtable;
m_xdmNodeETagIndex = xdmNodeETagIndex;
m_namedXsltHashtable = namedXsltHashtable;
m_namedXsltETagIndex = namedXsltETagIndex;
_hashAlgorithm = HashAlgorithm.MD5;
//NOTE: TransformEngine enum PLACEHOLDER FOR FUTURE USE
m_transformEngine = TransformEngine.SAXON;
}