正如在question中所提到的,我試圖使用Perl和libXSLT轉換我的輸入xml文檔。但是,當我嘗試在OS X上運行相同的Perl腳本時,我的xsl文件中的下列內容幾乎不包含以下內容:exsl:date-year in OS X
我收到以下錯誤。
xmlXPathCompOpEval: function year not found
Unregistered function
xmlXPathCompiledEval: evaluation failed
runtime error: file trans.xsl line 24 element value-of
XPath evaluation returned no result.
我的XSLT文件頭有以下
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xalan="http://xml.apache.org/xslt"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:exsl="http://exslt.org/common"
xmlns:date="http://exslt.org/dates-and-times"
extension-element-prefixes="exsl">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" media-type="text/xml"/>
運行Perl -v
取我下面
This is perl, v5.8.8 built for darwin-thread-multi-2level Copyright 1987-2006, Larry Wall....
和運行uname -a
取我下面
Darwin machine-maci 15.3.0 Darwin Kernel Version 15.3.0: Thu Dec 10 18:40:58 PST 2015; root:xnu-3248.30.4~1/RELEASE_X86_64 x86_64
爲什麼會出現此錯誤?我認爲OS X Vendor已經對他們的libXSLT進行了exsl擴展。是不是支持exsl擴展?
UPDATE
我調整我的例子一點點,我得到的輸出作爲賣方: - 通過的libxslt下面的評論的建議。
如果您通過命令行或Perl運行libxslt,則有關Safari的鏈接無關緊要。無論如何,我無法重現您的問題。作爲''的結果,你會得到什麼? –
我嘗試使用'exsl:document'(下面根據您的建議使用'system-property')的行中出現以下錯誤 '運行時錯誤:文件trans.xsl行30元素文檔 xsltApplySequenceConstructor:failed找到擴展文件' – Recker
我不記得推薦你在這個測試中包含'exsl:document'(或其他任何東西)。無論如何,我建議你編輯你的問題,並提供**完整的**,一步一步的指導如何重現你的問題 - 請參閱:[mcve]。 –