Учитывая этот XML-код:
<root>
blah <foo>blah</foo> blah <bar>blah</bar> blah
</root>
И его связанную таблицу стилей:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="foo">
<strong><xsl:apply-templates/></strong>
</xsl:template>
</xsl:stylesheet>
После преобразования с помощью класса XSLTProcessor (PHP), вот вывод:
blah <strong>blah</strong> blah blah blah
Но я скорее хочу получить этот вывод (неизвестные элементы в таблице стилей экранированы):
blah <strong>blah</strong> blah <bar>blah</bar> blah
Мое предложение псевдокода:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="foo">
<strong><xsl:apply-templates/></strong>
</xsl:template>
<xsl:template match="all elements other than foo (with their attributs :p)">
<xsl:copy-of select="node()" escape="yes"/>
</xsl:template>
</xsl:stylesheet>
Я в отчаянии, так что еслиу вас есть какое-то решение для того, чтобы сохранить и избежать этих бесполезных элементов, я буду очень счастлив!