У меня есть один файл XML и его файл преобразования XSL:
simple.xml
* * 1004
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="simple.xsl"?>
<!DOCTYPE simple [
<!ENTITY ie "<expan>id est</expan>">
]>
<text xmlns="http://www.tei-c.org/ns/1.0">
I am happy &ie; I am not upset.
</text>
simple.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:n="http://www.tei-c.org/ns/1.0"
>
<xsl:template match="/">
<xsl:apply-templates select="//n:text" />
</xsl:template>
<xsl:template match="n:text">
<html>
<body>
<xsl:apply-templates />
</body>
</html>
</xsl:template>
<xsl:template match="n:expan">
<span style="color: red;"><xsl:apply-templates /></span>
</xsl:template>
</xsl:stylesheet>
Когда я открываю файл XML в Firefox, корректно генерируется диапазон:
Но в Edge и Internet Explorer шаблон n:expan
не применяется, поэтому id est
не входит в диапазон и не записывается красным:
Когда я удаляю пространство имен и все префиксы n:
, это хорошо работает в Edge и IE. Кроме того, когда я удаляю сущность ie
и пишу напрямую I am happy <expan>id est</expan> I am not upset.
, она работает в обоих браузерах.
Как мне сделать так, чтобы он работал как с сущностями, так и с пространством имен?
Спасибо за вашу помощь.