我有這樣的XML文件解析在PHP變量XSLT中使用的setParameter
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
我有這個PHP代碼
<?php
$xslDoc = new DOMDocument();
$xslDoc->load("test.xsl");
$xmlDoc = new DOMDocument();
$xmlDoc->load("test.xml");
$xsltProcessor = new XSLTProcessor();
$xsltProcessor->registerPHPFunctions();
$xsltProcessor->importStyleSheet($xslDoc);
$xsltProcessor->setParameter('','s_name', 'title');
$xsltProcessor->setParameter('','s_value', 35);
echo $xsltProcessor->transformToXML($xmlDoc);
?>
,這是我的XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" xmlns:str="http://exslt.org/strings" exclude-result-prefixes="str">
<xsl:template match="/">
<html>
<body>
<table border="1">
<tr bgcolor="#9acd32">
<th>O/p</th>
</tr>
<xsl:for-each select="/bookstore/book[price>$s_value]/$s_name">
<tr>
<td><xsl:value-of select="."/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
在這裏我要發送到我的xsl轉換的一些參數。這是s_name
和s_value
這是給我的錯誤
如果我只用s_value
然後正常工作ñXSL將
<xsl:for-each select="/bookstore/book[price>$s_value]/title">
如果我同時使用則其不工作
你不能把變量放在路徑中。把一個路徑放到我認爲可行的整個變量中。 – hakre 2013-03-02 10:54:32
@hakre如果我使用'$ s_value',那麼它的工作... – 2013-03-02 10:57:40
是的,因爲它是一個有效的xpath變量,另一個不是因爲放置在路徑中。如果有幫助,你可以嘗試比較本地名稱。 – hakre 2013-03-02 10:58:19