Как указано в одном из ответов, это ошибка. Следовательно, вы не можете пропустить обе кавычки.
Но вы можете заменить двойную кавычку другим символом, а затем использовать translate
для восстановления оригинала.
Главное, что нужно выбрать, это символ, который не появится в вашем тексте. Например \x7F
.
$xsl = new XSLTProcessor();
$xsl->registerPHPFunctions();
$xsl->setParameter("","searchterms", strtr($searchterms, '"', "\x7F"));
$xsl->importStylesheet($xslDoc);
echo $xsl->transformToXML($doc);
и
<title>search feed for <xsl:value-of select="translate($searchterms, '', '"')"/></title>
Кроме того, вы не можете использовать html-сущности, поскольку они экранируются.
Или используйте disable-output-escaping="yes"
:
<title>search feed for <xsl:value-of select="$searchterms" disable-output-escaping="yes"/></title>
с
$xsl->setParameter("","searchterms", htmlspecialchars($searchterms));
Первый метод, который вы можете использовать для встроенных выражений. Например:
<title attr="foo {translate($searchterms, '', '"')} bar">bazz</title>