我想在Zend Framework中使用XML文件和XSL樣式表而不是普通的phtml模板。不過,我不確定如何實現它。Zend框架和XML/XSLT集成
什麼我試過到目前爲止做:
- ,而不是一個.phtml意見我使用的.xsl樣式
- 我使用的.xml佈局
這是我做每個控制器的init()方法:
$this->view->xmlStylesheet = '/../application/modules/default/views/scripts/'
. $this->_request->getControllerName() . '/'
. $this->_request->getActionName() . '.xsl';
這使我喜歡的路徑:
/../application/modules/default/views/scripts/index/index.xsl
我的佈局是這樣的:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="<?php echo $this->escape($this->xmlStylesheet); ?>"?>
<page>
<header></header>
<content></content>
<footer></footer>
</page>
而且觀點是這樣的,例如:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"
media-type="application/xhtml+xml" encoding="iso-8859-1"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="/">
<html>
<head>
<title>Hello World</title>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=iso-8859-1"/>
</head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我在瀏覽器(Firefox)能得到什麼,雖然僅僅是一個空白頁與這樣的來源,例如:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/../application/modules/default/views/scripts/index/index.xsl"?>
<page>
<header></header>
<content></content>
<footer></footer>
</page>
有人可以他讓我出去?考慮到我是一名XML初學者,所以我剛開始學習如何有效地使用它。
感謝。有沒有計劃在將來有時在官方ZF版本中包含對XSLT的支持? – 2009-12-13 11:52:46
XSLT似乎不在ZF 2.0的路線圖中:http://framework.zend.com/wiki/display/ZFDEV2/Zend+Framework+2.0+Roadmap – 2009-12-13 18:19:26
此外,我沒有找到任何有關的功能請求在問題跟蹤器中使用視圖中的XSLT。我認爲大多數ZF用戶和開發人員不會喜歡這個功能(即使XSLT的渲染速度通常比PHP腳本快得多)。 – 2009-12-13 18:21:57