下面的这个程序是利用xslt写xml文件的功能
需要实现如下功能:输入一个XML和多个xsl文件
按xsl的顺序修改xml文件的内容并最终输出结果:
代码如下:
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;namespace xslt {
public class applyXSLT {
public static void Main(string[] args) {
string document;
string stylesheet;
if (args.Length <2) {
Console.WriteLine("Usage Error!!");
Console.WriteLine("Usage:XSLT document.xml stylesheet.xsl ...xsl");
return;
} else {
document = args[0];

int i=1;
while(i<args.Length)
{
stylesheet = args[i];
Console.WriteLine("Document: {0},  Stylesheet: {1}\n", document,stylesheet);

XmlReader reader = null;
try {
    //Create reader
XmlReaderSettings settings = new XmlReaderSettings();
    settings.IgnoreWhitespace = true;
    settings.IgnoreComments = true;  
reader = XmlReader.Create(document, settings); 
   
// Read stylesheet.xsl
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(stylesheet);

     //Prepare printing result
     XmlWriterSettings properties = new XmlWriterSettings();
properties.Indent = true;
properties.IndentChars = ("   ");
//writer = XmlWriter.Create(Console.Out,properties);
XmlWriter writer = XmlWriter.Create(new StreamWriter("result"+i.ToString()+".xml"),properties);

     //Transform (and print to standard out)
xslt.Transform(reader, writer);
writer.Close();


document="result"+i.ToString()+".xml";
i++;

} catch (XsltException ex) {
Console.WriteLine(ex.Message);
} catch (XmlException ex) {
Console.WriteLine(ex.Message);
} finally {
if (reader != null)
reader.Close();
}
}
}
}
}
}但只输入一个xml和一个xsl的时候能输出正确的结果
但输入一个xml和多个xsl的时候编译不通过并报错 result1.xml正在使用,请问如何解决!