2

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

任何想法?

4

4 回答 4

4

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

如果您愿意,在 XSLT 2.0 中这样做可能会更容易。 Michael Kay 在 2005 年的 XSL 邮件列表中回答了一个类似的问题。

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

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

<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>
于 2009-09-19T13:44:38.467 回答
0

做到这一点的方法是使用 XSLT。

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

于 2009-09-18T21:02:54.030 回答
0

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

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

于 2009-09-18T21:04:05.900 回答
0

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

于 2009-09-18T21:07:02.703 回答