Майкл прав, говоря, что Летающая тарелка нуждается в правильно сформированном XML, но если вашей единственной проблемой являются предопределенные сущности HTML (которые не являются частью XML), то вы можете объявить их самостоятельно в начале вашего документа следующим образом:
<!DOCTYPE html [
<!ENTITY % htmlentities SYSTEM "https://www.w3.org/2003/entities/2007/htmlmathml-f.ent">
%htmlentities;
]>
<!-- your XHTML text following here -->
Это извлекает объявления сущностей из их официального URL-адреса в сущность параметра htmlentities
, а затем ссылается (например, "исполняет") на извлекаемые объявления.Если вам нужны только trade
и nbsp
, или если Flying Saucer не позволит вам получить доступ к URL-адресам из сети, вы можете объявить их также вручную:
<!DOCTYPE html [
<!ENTITY trade "™">
<!ENTITY nbsp " ">
]>
<!-- your XHTML text following here -->
Теперь, если у вас действительно естьправильный файл HTML (не XHTML), тогда вы не сможете напрямую использовать с ним процессор XML, поскольку HTML использует функции разметки, не поддерживаемые XML (например, пустые элементы, такие как элемент img
, пропущенные тегии атрибуты сокращений).Но вы можете использовать процессор SGML, чтобы сначала преобразовать HTML в XHTML (XML), а затем использовать Flying Saucer в конечном XML-файле (SGML является надмножеством HTML и XML и исходным языком разметки, на котором основаны HTML и XML).Процесс включает в себя использование грамматики HTML DTD, такой как оригинальный W3C HTML4 DTD (с 1999 года) или мой HTML5 DTD на sgmljs.net плюс процессор SGML.Прежде чем вдаваться в подробности, сначала проверьте, решает ли ваша проблема простое добавление объявлений сущностей, как уже описано.