У меня есть длинный список xml-файлов, которые могут иметь разные кодировки. Я хотел бы просмотреть все файлы и распечатать их кодировки. Печать атрибута кодирования в заголовке XML является всего лишь первым шагом. (Следующий шаг после того, как я узнаю, как получить доступ к атрибуту кодирования будет использовать атрибут кодировки, чтобы проверить, если это ожидает кодирования.)Печать атрибута кодирования в файлах XML с помощью XSL
Это как ввод XML-файлы могут выглядеть следующим образом:
<?xml version="1.0" encoding="iso-8859-1"?>
<Resource Name="text1" Language="de">
<Text>
</Text>
</Resource>
<?xml version="1.0" encoding="utf-8"?>
<Resource Name="file2" Language="ko">
<Text>
</Text>
</Resource>
Xsl, который был сокращен до минимума, но все равно без успеха. Я думаю, что я не могу соответствовать заголовку XML, написав этот путь. Но как я могу что-то сопоставить в заголовке XML?
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<body>
<xsl:value-of select="@encoding"/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
О, я вижу ... Я подозревал, что пролог XML был особенным. Я использую функцию документа для обработки длинного списка, если файлы, на многих языках. «Нормальная» кодировка для большинства файлов в списке должна быть «iso-8859-1», однако иногда файл, например, польский или румынский, также получает эту кодировку. Затем этот файл необходимо проверить дополнительно, поскольку некоторые символы могут быть разрушены в процессе. Поэтому для этих файлов предпочтительно, чтобы они оставались в UTF-8 как можно дольше. – Gunilla
@Gunilla: вы хотите сказать, что файлы закодированы как UTF-8, но имеют пролог с другой кодировкой? Лучшее, что вы можете сделать, это предварительно обработать список файлов и просто удалить пролог (просто удалить первую строку), поскольку кодировка по умолчанию, если пролог отсутствует, - это UTF-8 или UTF-16 (разница в том, что может автоматически определяться из спецификации). – Abel
Хорошая идея! Если все файлы по умолчанию кодируются как UTF-8, если пролог отсутствует, никакие символы никогда не будут разрушены. И для тех файлов/языков, которые, как я знаю, перейдут в целевую систему, которая требует кодирования iso-8859-1, можно добавить пролог с кодировкой iso-8859-1 с использованием преобразования . Я думаю, что это упростит обслуживание этих файлов и уменьшит риск ошибок. Большое спасибо! –
Gunilla