在调用x:transform时从xsl中删除前导空格

时间:2012-12-12 06:27:10

标签: xml jsp xslt

您好我正在尝试使用以下代码从jsp执行xml-xsl转换:

<c:import url="/global/xsl/sub-nav.xsl" var="xslt"/>
<c:import url="/sitemap.xml" var="xmltext"/>
<x:transform xml="${xmltext}" xslt="${xslt}">
   <x:param name="relativeURL" value="/personal/accounts/"/>
   <x:param name="fullRelativeURL" value="/personal/accounts/sba/"/>
</x:transform>

这里的问题是,我无法对xsl文件进行任何更改。它在<?xml version="1.0" encoding="ISO-8859-1"?>之前有一个前导空格,即xsl的第一行。有没有办法在从jsp调用transform时可以省略该空格?否则,如果我没有摆脱那个领先的空间,它会给出500错误。

2 个答案:

答案 0 :(得分:0)

严格阅读XML spec (production 22 "prolog")表示在XML序言之前不能有空格。因此,具有前导空格的XSL文件被破坏, 必须 被修复。

我想你可以编写代码来将XSL文件加载到内存中,同时删除前导空格,然后将修正后的缓冲区传递给转换而不是原始的XSL ......但这似乎很多工作,并且会发生每次调用JSP时都会。

答案 1 :(得分:0)

你意识到${xslt}的值是一个字符串,对吗? ;)