У меня проблемы с преобразованием определенных символов из XML-канала в XHTML.
Я использую следующий пример для демонстрации проблемы.
Вот мой XML-файл:
<?xml version="1.0" encoding="UTF-8"?>
<paragraph>some text including the –, ã and ’ characters</paragraph>
Вот XSLT, который я применяю:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"
encoding="UTF-8"
indent="yes"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" />
<xsl:template match="paragraph">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<p><xsl:apply-templates/></p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Вот результирующий XHTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head></head>
<body>
<p>some text including the –, ã and ’ characters</p>
</body>
</html>
Символы из исходного XML заменяются новыми.
Во-первых, я хочу проверить, не является ли что-то не так с моей кодировкой, которая вызывает эту проблему?
Должен ли я что-то делать с использованием сущностей, если я хочу отобразить специальные символы для правильного отображения в XHTML? Если да, то как мне использовать их в XSLT и нужно ли заранее знать все возможные значения, которые могут быть в моем XML-канале?