Вам не хватает объявления пространства имен html. Попробуйте следующее:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xsl:output encoding="UTF-8"
doctype-public="-//WAPFORUM//DTD WML 1.1//EN"
doctype-system="http://www.wapforum.org/DTD/wml_1.1.xml"
indent="yes"/>
<xsl:template match="/">
<wml xml:lang="da">
<card id="FrontPage" title="{xhtml:html/xhtml:head/xhtml:title}">
<p id="changed">The server processed this Jan 1st. 2009.</p>
</card>
</wml>
</xsl:template>
</xsl:stylesheet>
Обратите внимание, что вы можете изменить префикс с xhtml
на любой более короткий, чем вам нравится.
Была и другая небольшая проблема (которая, вероятно, основана на распространенном недоразумении): /
означает корень документа, который не совпадает с самым верхним узлом в документе (html
). Самый верхний узел часто называют «корневым узлом», что неверно, то есть /
не соответствует самому верхнему узлу. Поэтому xhtml:html
необходимо добавить в выражение XPath.