我有一个xslt,我需要从磁盘读取文件。该文件是一个简单的文本文件,我希望阅读完整的内容并将其内嵌在我的输出html/pdf文件中。这可能吗?如何从磁盘读取txt文件并使用XSTL内联内容?
回答
下面是它如何做,使用XSLT 2.0的unparsed-text()
功能:
D:\MiLu\Dev\XML :: more > eins.txt
Ich bin die eins.
^Z
D:\MiLu\Dev\XML :: more > zwei.txt
Ich bin die zwei.
^Z
D:\MiLu\Dev\XML :: saxon unparsed-text.xml unparsed-text.xsl
<?xml version="1.0" encoding="UTF-8"?>
<eins>
<zwei> bla </zwei>
<drei>Ich bin die eins.

</drei>
<vier>Ich bin die zwei.

</vier>
</eins>
D:\MiLu\Dev\XML :: more /t1 unparsed-text.xml
<eins>
<zwei> bla </zwei>
<drei>
<textfile href="eins.txt"/>
</drei>
<vier>
<textfile href="zwei.txt"/>
</vier>
</eins>
D:\MiLu\Dev\XML :: more /t1 unparsed-text.xsl
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="textfile[ @href ]">
<xsl:copy-of select="unparsed-text(@href)"/>
</xsl:template>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
对于XSLT 1.0,你需要涉及解决方法使用外部实体引用文本文件的XML包装文件,以及document()
函数。
谢谢,不知道这个。正是我在找什么。 – 2011-05-21 14:57:06
Xslt本身没有做这种活动的机会。不过脚本可以写成在xsl里运行。在.NET中,这还包括扩展对象。您没有提及执行转换的语言/环境。
使用内联脚本/扩展对象,可以使用语言IO类库打开文件并返回字符串。
我正在使用Java。 – 2011-05-21 14:25:48
它会出现java有类似的能力? http://www.cafeconleche.org/books/xmljava/chapters/ch17s03.html – Cargowire 2011-05-21 14:48:29
http://www.xsltfunctions.com/xsl/fn_unparsed-text.html – 2011-05-21 14:56:40
查看this post from my blog显示了一个示例如何解析一个巨大的文本(日志)文件,解决the Wide-Finder problem。
当然,标准XSLT 2.0功能用于unparsed-text()
和the XPath 2.0 functions for regular expressions。
如果更复杂的文本处理参与,可以使用XSLT正规表达式的文本处理2.0指令:<xsl:analyze-string>
,<xsl:matching-substring>
和<xsl:non-matching-substring>
,例如,我在my JSON parser, written entirely in pure XSLT 2.0做。
- 1. vb.net从.txt文件读取并显示内容
- 2. 从txt文件读取并以粗体显示所有内容
- 3. 使用Mips Assembly从txt文件读取和打印内容
- 4. 用于Java/Scala的BSON库,可以从磁盘读取内容
- 5. 如何逐点读取整个磁盘的内容
- 6. C++从.txt中读取所有内容
- 7. 读取Excel单元格并将内容复制到txt文件
- 8. 读取txt文件内容并存储在数组中
- 9. 从本地磁盘读取文件
- 10. 使用VBS从文件中读取并说出内容
- 11. Powershell:如何从URI而不是本地磁盘获取JSON文件内容
- 12. 阅读Rhomobile中的txt文件内容
- 13. 读取文件并更改其内容
- 14. 读取文件并与内容
- 15. 有没有办法从TrueCrypt磁盘读取文件到内存中的文件?
- 16. FileReader/Scanner读取文件名,而不是.txt文件的内容
- 17. 读取“.txt”文件以外的文件内容
- 18. 使用语句读取文件内容
- 19. 如何从内联键盘获取callback_data
- 20. 如何从打开文件对话框中读取txt并使用javascript(jquery)加载textarea中的内容?
- 21. 如何读取RC文件内容
- 22. 如何从一个文件逐行读取并执行内部内容
- 23. 使用命令行读取xar文件内的文件内容
- 24. UIWebView - 从文件中读取内容并删除文件
- 25. Python读取文件内容
- 26. JavaScript读取文件内容
- 27. CPU如何从磁盘读取?
- 28. 从.epub文件中读取内容
- 29. AS3 - 从.ini文件读取内容
- 30. 从文件流中读取内容c#
这只是一个文件的阅读,我不知道它是否可以完成。 – 2011-05-21 14:04:12
好问题,+1。查看我的答案,以获取可能在使用XSLT进行文本处理时发现有用的函数的链接。还有一些非平凡例子的链接,我如何在严肃的解决方案中使用这些函数,比如我的JSON解析器和Tim Brey的Wide-Finder问题的解决方案。 – 2011-05-21 16:40:13