2013-11-21 53 views
2

我正尝试使用Saxon将文本文件转换为XSLT 2.0中的xml。在vb.net中使用Saxon api进行XSLT 2.0转换

text file = c:\\...\....sample.txt 

对于这一点, 我想通过其中包含的文本文件的属性值的路径的XML文件。

<?xml version="1.0" encoding="UTF-8"?> 
<InputArgs inputFile="C:\\...\....sample.txt" schemaName="test.xsd" /> 

我使用的代码

 Processor proc = new Processor(); 
     XdmNode input = proc.NewDocumentBuilder().Build(new Uri(INPUT XML PATH)); 
     XsltTransformer transformer = proc.NewXsltCompiler().Compile(new Uri(INPUT XSL PATH)).Load(); 
     transformer.InitialContextNode = input; 

     Serializer serializer = new Serializer(); 
     FileStream outStream = new FileStream(outFile, FileMode.Create, FileAccess.Write); 
     serializer.SetOutputStream(outStream); 
     transformer.Run(serializer); 
     outStream.Close(); 

我得到错误....

得出结论,如何通过提供XML转换为文本文件,以XML 和XSL只 文本文件以xml中的属性值的形式传递...

就像将参数传递给XSL一样?

+0

而错误信息是? (包括行号,以及上述代码中的哪一行) – LarsH

+0

告诉我们,您在收到错误信息时没有说明错误是什么,而是要求我们在蒙住眼睛时帮助您。 –

回答

0

您应该使用file URI形式<InputArgs inputFile="file:///C:/dir/subdir/sample.txt" schemaName="test.xsd" />,那么在XSLT你可以使用unparsed-text

<xsl:template match="InputArgs"> 
    <xsl:variable name="sample" select="unparsed-text(@inputFile)"/> 
</xsl:template> 

当然,你也可以定义一个参数,并通过在URI如果你喜欢的。