最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】当整合Google Analytics的js代码到ant的Docbook的webhelp的xsl配置文件中,结果出错:[xslt] : Warning! Failure reading xxx Cause: java.io.EOFException: no more input

Docbook crifan 1615浏览 0评论

【问题】

当把之前已成功整合到html的google analytics代码:

给Docbook生成的HTML网页中添加js(javascript)代码(谷歌分析追踪代码 Google Analytics Tracking Code)

再去整合到docbook的ant的webhelp中的xsl配置文件

D:\tmp\tmp_dev_root\cgwin\home\CLi\develop\docbook\ant\webhelp\xsl\webhelp_crl.xsl

中时,所有路径方面,都已设置正确:

<?xml version="1.0"?>

<!DOCTYPE stylesheet 
[
<!-- OFFICE -->
<!ENTITY xsl_ns_path "D:/tmp/tmp_dev_root/cgwin/home/CLi/develop/docbook/tools/docbook-xsl-ns-1.77.1">
<!ENTITY config_path "D:/tmp/tmp_dev_root/cgwin/home/CLi/develop/docbook/config/docbook-xsl-ns-1.77.1">

]>

<xsl:stylesheet 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:d="http://docbook.org/ns/docbook"
    xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
    xmlns:exsl="http://exslt.org/common"
    xmlns:set="http://exslt.org/sets"
    version="1.0"
    exclude-result-prefixes="doc exsl set d">


...

<!--============================================================================
try add google analytics tracking code
=============================================================================-->
<!-- http://www.sagehill.net/docbookxsl/InsertExtHtml.html -->
<xsl:template name="user.header.content">
   <xsl:variable name="google_analytics_js" select="document('file:///&config_path;/html/js/crifan_ga_js.xml')"/>
   <xsl:copy-of select="$google_analytics_js/ga_js/node()"/>
</xsl:template>

</xsl:stylesheet>

结果还是出错:

[xslt] : Warning! Failure reading D:/tmp/tmp_dev_root/cgwin/home/CLi/develop/docbook/config/docbook-xsl-ns-1.77.1/html/js/crifan_ga_js.xml Cause: java.io.EOFException: no more input

【解决过程】

1.后来经过折腾,添加file:///前缀,就可以了:

<!--============================================================================
try add google analytics tracking code
=============================================================================-->
<!-- http://www.sagehill.net/docbookxsl/InsertExtHtml.html -->
<xsl:template name="user.header.content">
   <xsl:variable name="google_analytics_js" select="document('file:///&config_path;/html/js/crifan_ga_js.xml')"/>
   <xsl:copy-of select="$google_analytics_js/ga_js/node()"/>
</xsl:template>

就可以正确读取xsl配置文件了。

【总结】

使用别的cygwin或win32中的xsltproc之类的xsl解析工具时,都可以不添加file:///前缀,本地文件就可以找到并正确解析的。

而对于ant中的xslt,都是要注意,其所支持的URI中,本地文件的路径,也必须添加file:///才可以正确找到然后再解析的。

转载请注明:在路上 » 【已解决】当整合Google Analytics的js代码到ant的Docbook的webhelp的xsl配置文件中,结果出错:[xslt] : Warning! Failure reading xxx Cause: java.io.EOFException: no more input

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
82 queries in 0.169 seconds, using 22.29MB memory