首页 > 解决方案 > PHP XSL:键“匹配”模式编译失败

问题描述

我有以下密钥,但是当我尝试运行代码时出现 apache 错误。

<xsl:key name="dt" match="//eprint[substring(date,1,4) &gt;= $year]" use="substring(date,1,4)" />

我得到的错误是:

[Thu Jul 12 10:51:18.724468 2018] [php7:warn] [pid 24089] [client 127.0.0.1:34808] PHP Warning:  XSLTProcessor::importStylesheet(): Forbidden variable in /home/david/Documents/staffpub/inc/staff.php on line 54, referer: http://localhost:81/test_jsonp.html
[Thu Jul 12 10:51:18.724614 2018] [php7:warn] [pid 24089] [client 127.0.0.1:34808] PHP Warning:  XSLTProcessor::importStylesheet(): compilation error: file /home/david/Documents/staffpub/inc/sorts/year.xsl line 5 element key in /home/david/Documents/staffpub/inc/staff.php on line 54, referer: http://localhost:81/test_jsonp.html
[Thu Jul 12 10:51:18.724634 2018] [php7:warn] [pid 24089] [client 127.0.0.1:34808] PHP Warning:  XSLTProcessor::importStylesheet(): xsl:key : 'match' pattern compilation failed '//eprint[substring(date,1,4) &gt;= $year]' in /home/david/Documents/staffpub/inc/staff.php on line 54, referer: http://localhost:81/test_jsonp.html
[Thu Jul 12 10:51:18.732938 2018] [php7:warn] [pid 24089] [client 127.0.0.1:34808] PHP Warning:  XSLTProcessor::transformToXml(): No stylesheet associated to this object in /home/david/Documents/staffpub/inc/staff.php on line 59, referer: http://localhost:81/test_jsonp.html

我想密钥设置有问题,但我不确定是什么。

有人能指出我正确的方向吗?

一个样本数据集是

<?xml version='1.0' encoding='utf-8'?>
<eprints xmlns='http://eprints.org/ep2/data/2.0'>
  <eprint id='http://dsfdsfs'>
   <eprintid>3424243242423</eprintid>
   <date>2012-12</date>
  </eprint>

标签: phpxslt

解决方案


推荐阅读