Типы файлов, как правило, должны определяться вне диапазона. например. если вы извлекаете файл с веб-сервера, то местом для поиска будет заголовок Content-Type
ответа HTTP. Если вы выбираете локальный файл, у файловой системы будет способ определения типа файла - в Windows, который будет искать расширение файла.
Если ничего из этого не доступно, вам придется прибегнуть к анализу контента. Это никогда не бывает абсолютно надежным, и RSS особенно раздражает, потому что существует несколько несовместимых версий, но самое лучшее, что вы могли бы сделать, это:
Попытка проанализировать содержимое с помощью анализатора XML. Если это не удается, контент не является правильно сформированным XML, поэтому не может быть RSS.
Посмотрите на document.documentElement.namespaceURI
. Если это http://www.w3.org/1999/xhtml
, у вас есть XHTML. Если это http://www.w3.org/1999/02/22-rdf-syntax-ns#
, у вас есть RSS (одного варианта).
Если document.documentElement.tagName
равен rss
, у вас есть RSS (немного другого вида).
Если файл не может быть проанализирован как XML, он вполне может быть HTML (или некоторым приближением к теговому супу). Вполне возможно, что это также может быть сломан RSS. В этом случае большинство инструментов подачи отклонят его. Если вам все еще нужно обнаружить этот случай, вам нужно будет искать строки вроде <html
или <rss
или <rdf:RSS
в начале файла. Это было бы еще более ненадежным.