php - PHP XSL:键“匹配”模式编译失败
问题描述
我有以下密钥,但是当我尝试运行代码时出现 apache 错误。
<xsl:key name="dt" match="//eprint[substring(date,1,4) >= $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) >= $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>
解决方案
推荐阅读
- php - 从 php 将图像发送到 java 服务
- wordpress - 是否有任何代码用于在 wordpress 中为用户添加 Ip adddres
- android - 将自定义内核刷入 Android 手机 (Pixel)
- django - 在 `StreamingHttpResponse` 中关闭连接,然后做一些事情
- c# - 如何比较两个引用类型嵌套和动态对象的值
- python - 如何使用熊猫根据多列条件计算行数?
- sql - 按名称查询报表的 SQL 查询,其中许多列按状态计数
- spring - 如何在请求之前对用户进行身份验证?
- python - 正确调用函数来绘制矩形 Python + Tkinter
- laravel - 通过 laravel 和 vue 前端从 ftp 检索图像