将一批带有java命令的xml转换为c#
本文关键字:命令 xml 转换 java 一批 | 更新日期: 2023-09-27 18:08:45
我目前有这样一行的批处理文件:
"C:'Program Files (x86)'Java'jre7'bin'java" -Xmx1224m -classpath .'xalan.jar
org.apache.xalan.xslt.Process -IN FileIn.xml -XSL FileConvert.xslt -OUT FileOut.xml
它取一个给定的xml
和一个给定的xslt
,然后吐出一个新的,转换后的xml
。批处理运行得很好,但我试图将其转换为C#
,以便我可以围绕它构建应用程序,并能够更改一些参数,例如选择哪些输入文件。
我的代码是这样的,
ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd",
"/k " + "'"C:''Program Files (x86)''Java''jre7''bin''java'" -Xmx1224m -classpath .'xalan.jar org.apache.xalan.xslt.Process -IN In.xml -XSL Convert.xslt -OUT Out.xml");
Process proc = new Process();
proc.StartInfo = procStartInfo;
proc.Start();
认为它会像一个简单的CMD
命令一样运行。当我这样做时,我只会得到一条消息,其中包含允许使用的Java命令列表,然后它就退出了。我尝试了一些使用引号的变化,比如@"C:'...
等等。
任何想法?
试试下面的方法,会对你有帮助的。
string commandLine = "-Xmx1224m -classpath .'xalan.jar org.apache.xalan.xslt.Process -IN In.xml -XSL Convert.xslt -OUT Out.xml";
System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo(commandLine);
procStartInfo.WorkingDirectory = @"C:'Program Files (x86)'Java'jre7'bin'java";
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = true;
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo = procStartInfo;
proc.Start();
string result = proc.StandardOutput.ReadToEnd();
Console.WriteLine(result);