使用XSLT从文本文件中删除第一行

时间:2009-09-18 21:00:36

标签: xslt flat-file

我正在使用生成文本文件的系统(Maximo) 我只需删除文件的第一行。
这样做的方法应该是使用XSLT。

有什么想法吗?

4 个答案:

答案 0 :(得分:4)

是的,您可以在XSLT中完成您想要的任务!

在XSLT 2.0中这样做可能会更容易,如果这是一个选项。 Michael Kay answered a similar question on the XSL mailing list in 2005.

用小例子解释他的回答:

在XSLT 2.0中:您可以使用unparsed-text()函数读取文件tokenize()以将其拆分为行(并忽略第一行)。< / p>

<xsl:for-each select="tokenize(unparsed-text($in), '\r?\n')">
 ...
</xsl:for-each>

在XSLT 1.0中:您可以通过假装它是XML来阅读平面文本文件 外部实体,并从导致该外部实体的XML文档中引用它 要扩展的实体。

<!DOCTYPE foo [
<!ENTITY bar SYSTEM "bar.txt">
]>
<foo>
&bar;
</foo>

答案 1 :(得分:0)

使用XSLT的方法

XSLT可以生成文本文件,但它不能处理文本文件。它只能处理格式良好的XML。

答案 2 :(得分:0)

XSLT只会将有效的XML文件作为输入,而不是一般的文本文件。但它可以输出文本。

(例如,我使用XSLT生成C代码。)

答案 3 :(得分:0)

如果您的XSLT处理器支持任意转换(通过FFD进行二进制xforms - 平面文件描述符),则有可能执行此操作。您可以将文本包装在一个节点中,然后使用常规XSLT模板在该节点上进行操作,以输出第一次回车后的任何内容。