回答
是的,您可以在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), '\r?\n')">
...
</xsl:for-each>
在XSLT 1.0:你可以假装它是一个XML 外部实体,并从引起 实体扩展XML文档引用它阅读纯文本文件。
<!DOCTYPE foo [
<!ENTITY bar SYSTEM "bar.txt">
]>
<foo>
&bar;
</foo>
做到这一点的方法是不使用XSLT。
XSLT可以产生文本文件,但它不能进程文本文件。它只能处理格式良好的XML。
做到这一点的方法是不使用XSLT。 - 同意但现在是唯一可行的选择。 – NitroxDM 2009-09-18 21:27:53
@NitroxDM - 这就是每个答案在这里试图说 - *如果XSLT是只有**工具,你不能做*。您**必须包含一些其他工具才能实现您的目标,并且如果您可以涉及其他工具,那么您有一条途径可以使用比XSLT更合适的方法。 – 2009-09-18 22:33:46
@Ben Blank - XSLT解决方案是完全可能的。看到我的答案。 – 2009-09-19 13:46:57
XSLT只会将有效的XML文件作为输入,而不是一般的文本文件。不过,它可以输出文字。
(我用XSLT生成C代码,例如。)
XSLT 2.0可以使用unparsed-text()函数处理非XML文件,并且可以通过将XSLT 1.0用作实体引用来欺骗纯文本。 – 2009-09-19 13:49:34
如果您的XSLT处理器支持(通过的FFD二进制的XForms - 平面文件描述符)的任意到任意改造,有这样做的可能性。您可以将文本包装到节点中,然后使用常规XSLT模板在该节点上进行操作,以输出第一次回车后的内容。
是否可以使用XSLT将文本文件的内容包装到节点中? – NitroxDM 2009-09-18 21:24:49
@NitroxDM - Catch-22。如果需要先处理文件,然后才能将它用于XSLT,则无法使用XSLT进行处理。 – 2009-09-18 22:35:52
取决于您的处理器/平台 - WebSphere DataPower(SOA设备)支持 - https://www.ibm.com/developerworks/forums/thread.jspa?messageID=14107417 – Thiyagaraj 2009-09-19 06:03:51
- 1. 从文件中删除第一行
- 2. 从文本文件中删除一行?
- 3. 如何从文本文件中删除第一行php
- 4. 如何从文本框中删除第一行文本?
- 5. C#使用文本框从文本文件中删除一行文本
- 6. C从文本文件中删除第一行而不重写文件
- 7. 从目录中的所有文本文件中删除第一行的脚本
- 8. 从文本文件中删除行
- 9. 从文本文件中删除多行
- 10. 如何从VB6的文本文件中删除一行文本?
- 11. 从文本文件中删除一行文本
- 12. 用Node.js删除第一个15k行的文本文件
- 13. 从多个文本文件中删除第二行最后一行
- 14. 从文件中删除第一行和最后一行
- 15. 使用bash脚本从XML文件中删除一行
- 16. 使用终端从文档中删除一行文本
- 17. 使用sed从文本文件中删除特定的行号?
- 18. 使用ASP从文本文件中删除选定的行?
- 19. 使用grep从文本文件中删除多行
- 20. 使用MATLAB从文本文件中删除奇数行?
- 21. 使用Swift从文本文件中删除单行
- 22. 在使用java的文本文件中删除一行文本行
- 23. 如何使用php从文本文件中删除一行而不留空行
- 24. C#如何删除我的文本文件的第一行?
- 25. 如何删除文本文件的第一个“X”行?
- 26. 从VB08中的文本文件中删除一行
- 27. 从bash中的文本文件中删除一行?
- 28. 从自动生成的文本输出中删除第一行
- 29. 使用sed从文本文件中删除多个文件名
- 30. 从文件中删除文件版本
非常酷的技巧与实体参考!我希望它适合他。 :-) – 2009-09-21 18:03:03