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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用XSLT从文本文件中删除第一行相关的知识,希望对你有一定的参考价值。

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

任何的想法?

答案

是的,你可以在XSLT中完成你想要的!

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

用一些小例子来解释他的答案:

在XSLT 2.0中,你可以使用unparsed-text()函数来读取文件,tokenize()将其拆分成行(并忽略第一行)。

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

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

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

这样做的方法是不使用XSLT。

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

另一答案

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

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

另一答案

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

以上是关于使用XSLT从文本文件中删除第一行的主要内容,如果未能解决你的问题,请参考以下文章

如何为 XSLT 代码片段配置 CruiseControl 的 C# 版本?

从列表视图中删除一行后刷新片段

如何使用 XSLT 从 XML 中删除元素标记

使用 XSLT 删除 XML 节点文本

Python删除文件第一行

如何使用 XSLT 从 XML 中删除名称空间