【问题】
当把之前已成功整合到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