Gru*_*ber 5 html java xml xslt
我对一些 XSLT 问题有点困惑。
我有一些简单的 xml 文件和以下样式表:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:param name="linked_content"/>
<xsl:template match="/">
<html>
<head>
<title>Chapter summary</title>
</head>
<body BGCOLOR="white">
<xsl:value-of select="$linked_content"></xsl:value-of>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
该linked_content来自于一个简单的文本文件(如的summary.txt):
<p>
Consider this as a simple summary ^^
</p>
<h3>Part One</h3>
Run Code Online (Sandbox Code Playgroud)
现在我的问题是:如何将文本文件中的 HTML 代码作为 HTML 代码插入到生成的 html 文件中。我知道,上面的代码不起作用,因为我只在结果插入的文本中得到 >, < 。
我不会坚持通过参数提交内容。如果他们是一种从样式表中读取文本文件的方法,那就太好了!
任何人的想法?
编辑: 仍然卡在这里。我尝试了一种解决方法,在 java 中读取文本文件并将内容设置为样式表的参数。可悲的是
标志在这个过程中被翻译成 < 和 > ......因此,html 代码被搞砸了。是否有机会强制样式表不转换它们?
谢谢!
这种问题很混乱。您可以将其视为 HTML 到 HTML 转换(其中 XSLT 处理器仅将 HTML 视为文本),或者将其视为 HTML 到 HTML 转换(其中 XSLT 处理器将 HTML 视为 XML)。在第一种情况下,您将无法对内容进行太多转换;在第二种情况下,您会遇到输入无效的情况。无论哪种方式,它都不是 XSLT 设计的纯粹 XML 到 XML 用例,因此您将需要扩展。
第一种方法 - 将其视为文本 - 可以使用禁用输出转义来实现,前提是(a)您的处理器支持它,并且(b)您使用一个处理管道,其中转换后立即进行序列化。
第二种方法 - 将其视为 XML - 可以使用诸如 saxon:parse-html() 之类的扩展来实现,它接受 HTML 输入并将其转换为某些“等效”XML 的树表示形式。