我使用的是saxon for xml到html的xslt转换,我需要两个输出文件,一个是基本html,一个是javascript文件,如果不支持js,它可以是文本文件。这是我的转换c#代码,也是xsl文档的一部分。我需要从转换后的xml输出一个html文件和一个带有脚本的javascript文件
public void ConvertXMLtoHTMLXSLT2Saxon()
{
System.IO.DirectoryInfo myDirectory = new DirectoryInfo(Environment.CurrentDirectory);
string parentDirectory = myDirectory.Parent.Parent.FullName;
string xsltFile = Path.Combine(parentDirectory, "test.xslt");
string xmlFile = Path.Combine(myDirectory.FullName, "test.xml");
// Create a Processor instance.
Processor processor = new Processor();
// Load the source document.
XdmNode input = processor.NewDocumentBuilder().Build(new Uri(xmlFile));
// Create a transformer for the stylesheet.
XsltTransformer transformer = processor.NewXsltCompiler().Compile(new Uri(xsltFile)).Load();
// Set the root node of the source document to be the initial context node.
transformer.InitialContextNode = input;
// BaseOutputUri is only necessary for xsl:result-document.
transformer.BaseOutputUri = new Uri(xsltFile);
// Create a serializer.
Serializer serializer = new Serializer();
serializer.SetOutputFile("test.html");
// Transform the source XML to System.out.
transformer.Run(serializer);
}
这里是xsl文档的一部分
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<xsl:text disable-output-escaping='yes'><!DOCTYPE html></xsl:text>
<HTML>
<HEAD>
<TITLE></TITLE>
<script src="Scripts/test.js"></script>
</HEAD>
<BODY>
<xsl:apply-templates/>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="Page">
<xsl:apply-templates/>
<xsl:result-document href="{@Name}.js">
$(document).ready(function (){
--some javascript code--
})
</xsl:result-document>
</xsl:template>
</xsl:stylesheet>
如果您希望二次输出文档是纯文本文件,则使用。
<xsl:result-document href="{@Name}.js" method="text">
$(document).ready(function (){
--some javascript code--
})
</xsl:result-document>
XSLT对Javascript文件没有特殊的序列化,所以method="text"
是合适的方法。
如何从输出到多个文件? 每个条目中的关键字是文件名。groupByKey转换给了我,但是我如何将它们写入多个文件呢? 例如,给定以下输入 我想输出两个文件
所以我正在和Yii2一起工作,对它来说是相当新的。我正在使用Kartik文件上传,并试图将代码转换为多个文件。但它只保存了第一个文件。 我已经删除了验证,因为这也是失败的,但一旦我知道所有其他的都在工作,我会重新添加。 型号: 控制器: 查看:
问题内容: 我正在尝试获取一个示例,该示例使用XSLT 2.0来输出工作中的多个文件。 在Java 1.6上使用Saxon B 9.7.0.1,出现此错误: input.xml transform.xml 问题答案: URI中的字符20是“文档和设置”中的第一个空格。作为快速解决方案,请尝试将文件移动到没有空格的路径。(例如,“ C:\ test”或类似的代码。)我怀疑长期的解决方法是将XSLT更
目录表 文件 使用文件 储存器 储存与取储存 概括 在很多时候,你会想要让你的程序与用户(可能是你自己)交互。你会从用户那里得到输入,然后打印一些结果。我们可以分别使用raw_input和print语句来完成这些功能。对于输出,你也可以使用多种多样的str(字符串)类。例如,你能够使用rjust方法来得到一个按一定宽度右对齐的字符串。利用help(str)获得更多详情。 另一个常用的输入/输出类型
在单个 Step 中处理多个输入文件是很常见的需求。如果这些文件都有相同的格式, 则可以使用 MultiResourceItemReader 来进行处理(支持 XML/或 纯文本文件)。 假如某个目录下有如下3个文件: file-1.txt file-2.txt ignored.txt file-1.txt 和 file-2.txt 具有相同的格式, 根据业务需求需要一起处理. 可以通过 Muli
File 结构体表示一个被打开的文件(它装包了一个文件描述符),并赋予了针对底层文件的读和/或写能力。(原文:The File struct represents a file that has been opened (it wraps a file descriptor), and gives read and/or write access to the underlying file.)