Как преобразовать html в xml
Перейти к содержимому

Как преобразовать html в xml

Converting HTML to XML

I have got hundereds of HTML files that need to be conveted in XML. We are using these HTML to serve contents for applications but now we have to serve these contents as XML.

HTML files are contains, tables, div’s, image’s, p’s, b or strong tags, etc..

I googled and found some applications but i couldn’t achive yet.

Could you suggest a way to convert these file contents to XML?

user avatar

2 Answers 2

I was successful using tidy command line utility. On linux I installed it quickly with apt-get install tidy . Then the command:

tidy -q -asxml —numeric-entities yes source.html >file.xml

gave an xml file, which I was able to process with xslt processor. However I needed to set up xhtml1 dtds correctly.

This is their homepage: html-tidy.org (and the legacy one: HTML Tidy)

I did found a way to convert (even bad) html into well formed XML. I started to base this on the DOM loadHTML function. However during time several issues occurred and I optimized and added patches to correct side effects.

Now this also allows to add more html pieces into one XML which I needed to use myself. In general it can be used like this:

In this example ‘<p>test<font>two</p>’ will nicely be outputed in well formed XML as ‘ <info><p>test<font>two</font></p></info> ‘. The info root tag is added as it will also allow to convert ‘ <p>one</p><p>two</p> ‘ which is not XML as it has not one root element. However if you html does for sure have one root element then the extra root <info> tag can be skipped.

With this I’m getting real nice XML out of unstructured and even corrupted HTML!

Основы XML. Преобразование XML-HTML. Использование JavaScript

Знакомство с технологией XML. Изучение возможности представления документов XML в HTML. Использование скриптов JavaScript для навигации по таблице XML и организации поиска данных по условию. Рекомендуемая литература [4, 13, 16].

Краткие теоретические сведения

Технология XML (eXtensible Markup Language) была создана в конце 90-х годов прошлого столетия. Основные достоинства текста XML:

□ имеет структуру базы данных, доступен ЭВМ и человеку;

□ удобно обрабатывается средствами современных языков программирования;

□ легко переводится в HTML.

Рассмотрим следующий пример текстовой базы данных, написанной на XML:

<title> Three men in the boat</title>

<title> Notre Domme de Paris</title>

<title> А War and Peace</title>

<title> Angelika — the misstress of ghosts</title> <author> А and S. Gallen</author>

Это пример правильно составленного документа XML, элементами которого являются теги <root>, <notes>, <book>, <title>, <author>, <price>.

Элементы в тексте расположены по типу дерева с головным элементом <root>. Каждьтй элемент имеет сопряженный с ним закрывающий элемент. Область действия каждого элемента ограничена открывающим и закрывающим элементами. Не допускается пересечения области действия элементов, т. e. области либо вложены одна в другую, либо вовсе не пересекаются. Элемент <root>, область действия которого содержит области действия всех других элементов, называется корневым. XML-документ можно рассматривать как текстовую базу данных. Значением элемента является информация, помещенная между тегами, определяющими данный элемент. Так, значением первого элемента <titie> является строка

Three men in the boat.

Наберите этот текст в любом редакторе и сохраните его как простой текстовый файл с расширением xml — например, дайте этому файлу имя textbd.xml. Можно просмотреть этот файл браузером Internet Explorer так же, как вы просматривали HTML-файлы. В случае ошибки интерпретатор XML выдаст подробную информацию о дислокации и сути ошибки.

Теперь покажем, как перевести этот вывод в табличную форму HTML, что выполняется средствами HTML. Создадим следующий файл HTML (листинг 2.12).

Листинг 2.12. HTML-документ для отображения таблицы XML

<hl> Our first lesson in xml-technology</hl>

Сохраним этот HTML-файл под именем textbd.html. Теперь откроем его браузером. Результат будет таким (рис. 2.9).

Рис. 2.9. Отображение документа XML в документе HTML

Для подключения созданного ранее XML-файла и связывания его с таблицей используются теги:

Для отображения данных в таблице используются теги для ячеек в следующем виде:

Тег <SPAN> используется в качестве контейнера. Параметр DATAFLD содержит значение отображаемого элемента XML.

При работе с базами данных одним из основных вопросов является поиск требуемой информации. В этой работе осуществим такой поиск с помощью средств JavaScript. Поскольку база может быть достаточно большой, то вывод ее целиком в таблице HTML- документа очень неэффективен. Поэтому будем отображать не всю таблицу, а, скажем, только две записи. Кроме того, поставим кнопки, чтобы листать базу <вверх-вниз>. Для этого изменим наш HTML-документ следующим образом (листинг 2.13).

Листинг2.13. Модифицированный HTML-документ для отображения таблицы XML

<hl> Our first lesson in xml-technology</hl>

<Thead style="background-color: acqua">

<Button onClick="tb.nextPage()">&gt</Button> <!—Команда отображает следующую страницу—>

<Button onClick="tb.previousPage()">&lt</Buttonx!—Команда отображает предыдущую страницу загруженного в память XML- документа—>

Терм &gt используется для прорисовки стрелки вправо, терм &it — стрелки влево. При этом указываем, что нужно отображать только две записи в таблице:

Теперь создадим для нашего сайта функциональное наполнение. Его смысл будет заключаться в том, что будем вводить название книги целиком или какие-то его фрагменты, и по нажатию кнопки система должна выдавать другие реквизиты книги: автора и цену либо сообщать, что книга не найдена. Теперь понадобится привлечь JavaScript. Собственно потребуется всего несколько команд.

Эта команда возвращает значение элемента <titie> из XML-файла, который является i-м по порядку перечисления этих элементов <titie>.

Эта команда возвращает общее число элементов <titie> из ХМ L-документа.

Эта команда возвращает позицию, с которой строка stringi входит в строку string либо -i, если вхождений нет.

Теперь приведем расширенный HTML-код для этой задачи (листинг 2.14).

Листинг2.14. Расширенный HTML-документ для отображения таблицы XML

var odoc=new ActiveXObject("Microsoft.XMLDOM");

odoc.async=false; // Приостановка программы,

// пока загрузка не завершится odoc.load("textbd.xml"); // Загрузка XML-документа в память var stringl=document.myform.mytext.value; z=odoc.getElementsByTagName("title").length;// Получение

// длины элемента // с тегом // <title>

for(i=0;i<z;i++) // Цикл для проверки на совпадение // указанного названия и названий, содержащихся // в теге <title> считанного XML-документа <

XML в HTML

1: Выберите локальные файлы XML или введите URL-адрес онлайн-файла XML. 2. Выберите «HTML» в качестве целевого формата и установите параметры. 3: Нажмите кнопку «КОНВЕРТИРОВАТЬ» и дождитесь завершения преобразования.

Выберите файлы Выберите файлы или введите URL файла URL файла

# ВЫХОДНЫЕ ФАЙЛЫ РАЗМЕР ФАЙЛА СКАЧАТЬ

Extensible Markup Language

Расширение файла: .xml

XML (/ˌeks em ˈel/ англ. eXtensible Markup Language) — расширяемый язык разметки. Рекомендован Консорциумом Всемирной паутины (W3C). Спецификация XML описывает XML-документы и частично описывает поведение XML-процессоров (программ, читающих XML-документы и обеспечивающих доступ к их содержимому).

Hypertext Markup Language

Расширение файла: .html, .htm

HTML — стандартизированный язык разметки документов во Всемирной паутине. Большинство веб-страниц содержат описание разметки на языке HTML. Язык HTML интерпретируется браузерами; полученный в результате интерпретации форматированный текст отображается на экране монитора компьютера или мобильного устройства.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *