下面的这个程序是利用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正在使用,请问如何解决!
需要实现如下功能:输入一个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正在使用,请问如何解决!
解决方案 »
- 各位大仙看看我这出什么错了....
- 有没有这样的网络连接管理软件
- ASP能和c#可执行程序通信吗
- 如何判断邮件已被接收
- 请教:winform关于组合框的高级用法
- 小弟刚学C#,问个问题:是关于窗体的------------!!!!!急(ing)...........
- 在线请教!web编程中如何使用timer组件,小妹不会阿
- System.NotSupportedException: 不支持给定路径的格式。
- C#DataTable数据读取处理问题,急急急。。。。
- 求助!C#编译平台搭建问题
- 请教各位:有没有方法设置DataGridView一个column的背景色或前景色呢?
- 文件被关闭了,在程序中如何能够知道??
帮你顶
可能是你没有释放文件的占有权我也在做这方面的东西
你能否把你的xml文件与xslt还有 cs如何调用的这三个功能发给我让我看看
谢谢
[email protected]