php的XSLTProcessor问题
我正在尝试使用php中的XSLTProcessor类从基于DITA Open Toolkit的xslt文件的.dita文件生成xhtml。
XSLTProcessor正在处理简单的xml和xslt文件(例如维基百科上的示例),但它使用Open Toolkit的xsls失败了。
有趣的部分是,如果我在相同的文件上使用同一台计算机上的bash中的xsltproc命令(我没有使用开关),一切都运行良好。
所以,这是我的代码:
<?php
$sXML = file_get_contents('concepts/tools.xml');
# LOAD XML FILE
$XML = new DOMDocument();
$XML->loadXML( $sXML );
# START XSLT
$xslt = new XSLTProcessor();
$XSL = new DOMDocument();
$XSL->load( 'xsl/dita2xhtml.xsl');
$xslt->importStylesheet( $XSL );
#PRINT
print $xslt->transformToXML( $XML );
而不是有效的xhtml文件,我得到这样的输出:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE span PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<span style="background-color: yellow;"><span style="font-weight: bold">[/concept
{""}) </span>
<span style="background-color: yellow;"><span style="font-weight: bold">[/concept/title
{""}) </span>Tools<span style="font-weight: bold"> (title]</span></span>
<span style="background-color: yellow;"><span style="font-weight: bold">[/concept/shortdesc
{""}) </span>Invest in a good set of tools for doing all kinds of tasks around the house.<span style="font-weight: bold"> (shortdesc]</span></span>
<span style="background-color: yellow;"><span style="font-weight: bold">[/concept/conbody
{""}) </span><span style="background-color: yellow;"><span style="font-weight: bold">[/concept/conbody/p
{""}) </span>Useful tools include the following items:<span style="font-weight: bold"> (p]</span></span> (...)
这只是输出的第一部分,但我不想在这里复制整个文本。
xsl文件和dita概念文件都来自DITA Open Toolkit。
有什么想法有什么不对吗?
没有找到相关结果
已邀请:
1 个回复
膛嵌墒缅欠
默认情况下,DOMDocument没有加载,这导致了所有问题。如果您遇到同样的问题,则必须使用LIBXML_DTDATTR选项,如下所示: