我有一個簡單的基於PHP的XSLT trasform代碼看起來像這樣:如何將包含單引號和雙引號的字符串作爲參數傳遞給PHP中的XSLT?
$xsl = new XSLTProcessor();
$xsl->registerPHPFunctions();
$xsl->setParameter("","searchterms", $searchterms);
$xsl->importStylesheet($xslDoc);
echo $xsl->transformToXML($doc);
的代碼將變量$ searchterms,其中包含一個字符串,作爲參數傳遞給它輪流使用它的XSLT樣式表爲文本:
<title>search feed for <xsl:value-of select="$searchterms"/></title>
,直到你試圖傳遞一個字符串與它混合這工作得很好,說:
$searchterms = '"some"'." text's quotes are mixed."
在這一點上XSLT處理器的尖叫聲:
無法創建XPath表達式(字符串 同時包含引號和雙引號)
什麼是安全通過任意的字符串輸入到XSLT正確的方法是什麼?請注意,這些字符串將在結果XML中用作文本值,而不是XPATH參數。
感謝, 波阿斯
addslashes可能會工作的u ..在添加它之前.. – 2010-04-29 12:35:45