在我的 XSLT 文件中。我用document()
功能
<xsl:variable name="Publicity" select="document('./publicity.xml')" />
这可行,但如果我尝试链接动态生成 XML 的 PHP 脚本,
<xsl:variable name="Publicity" select="document('./publicity.php')" />
我得到一个
Warning: XSLTProcessor::transformToXml() [xsltprocessor.transformtoxml]: file:///C:/wamp/www/XSLT/test.php:3: parser error : Start tag expected, '<' not found in ... on line ...
其中包括 <
来自<?php
看起来 XSLTProcessor 没有像通过 HTTP 请求那样请求文件,因此它不是由 Apache/PHP 执行的。
我知道我可以简单地将该 XML 结构包含到我的主 XML 中,但我试图避免这种情况......直到有人告诉我没有其他方法。
谢谢!
最佳答案
正确的 document() 函数只是从磁盘读取文件,它不会发出 HTTP 请求。所以 PHP 不会执行。
您必须使用 URL 而不仅仅是文件名作为 document() 函数的参数。
<xsl:variable name="Publicity"
select="document('http://example.com/publicity.php')" />
我相信以这种方式使用 URL 是大多数 XSLT 处理器的常见功能,但我还没有使用 PHP 对其进行测试,因此您的情况可能会有所不同。
关于php - 在 PHP 中动态生成的 XML 上使用 XSLT document(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3949698/