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