Глава 5: Анализ экземпляра XML
контур:
1: Пример эффекта
Второй: Пример анализа 1. Определите новый логотип.
2. Создайте XML-документ.
3. Создайте соответствующий HTML-файл.
XML широко используется в различных областях, таких как MathML в области технологий, WML в приложениях беспроводной связи, SVG в сетевых изображениях и т. д. Здесь мы сосредоточимся на применении XML в Интернете. Применение XML в Интернете в основном использует его мощные возможности манипулирования данными. Обычно используя XML с серверными программами, такими как JavaScript и ASP, можно реализовать практически все потребности приложений в сети.
Учитывая удобство объяснения, ниже мы представляем простой пример, который не включает серверную программу. Цель состоит в том, чтобы дать вам представление о возможностях манипулирования данными XML.
Хорошо, давайте сначала [нажмите здесь], чтобы увидеть эффект примера. (Для открытия используйте браузер IE5.0 или более поздней версии)
Это простая функция извлечения данных с компакт-диска. Вы можете просмотреть соответствующую информацию об одном компакт-диске, нажав «Предыдущий» и «Далее». Первоначально мы использовали два метода для достижения этого эффекта:
1. Используйте DHTML, чтобы скрыть данные на разных слоях и последовательно отображать их с помощью событий мыши;
2. Используйте фоновые программы (такие как ASP, CGI, PHP, JSP и т. д.) для вызова данных на стороне сервера.
Но в этом примере, когда мы открываем исходный код страницы, мы видим, что нет DHTML DIV или действия формы. Оно полностью реализовано в XML. Давайте проанализируем его производственный процесс ниже:
Шаг первый: Определите новую личность.
В соответствии с фактическими данными компакт-диска сначала создайте новый идентификатор с именем <CD>, во-вторых, установите идентификацию связанных с ним данных, а именно: имя компакт-диска <Название>, певец <Исполнитель>, год публикации <Год>, страна <Страна>, компания-эмитент <Компания> и цена <Цена>, наконец, необходимо создать логотип с именем каталога <КАТАЛОГ>; Зачем создавать еще один тег <CATALOG>? Поскольку в XML-документе указано, что должен и может быть только один корневой элемент (идентификатор), у нас есть несколько данных CD, и эти данные находятся в параллельных отношениях, поэтому нам нужно создать корневой элемент для этих параллельных элементов.
Определения и связи вышеуказанных элементов полностью соответствуют стандартам XML и не требуют определения специального файла DTD, поэтому определение DTD можно опустить. Если мы хотим использовать DTD для определения, описанный выше процесс можно выразить так:
<!КАТАЛОГ ЭЛЕМЕНТОВ (CD)*>
<!ELEMENT CD (название,исполнитель,год,страна,компания,цена)>
<!ELEMENT Заголовок (#PCDATA)>
<!ELEMENT Исполнитель (#PCDATA)>
<!ELEMENT Год (#PCDATA)>
<!ELEMENT Страна (#PCDATA)>
<!Компания ELEMENT (#PCDATA)>
<!ELEMENT Цена (#PCDATA)>
Этот код указывает, что элемент CATALOG содержит несколько подэлементов CD, а подэлемент CD, в свою очередь, содержит шесть подэлементов: Название, Исполнитель, Год, Страна, Компания, Цена, а их содержимое определяется как текст (символы, цифры, текст). (Примечание. Конкретные инструкции по синтаксису см. во введении в DTD в предыдущей главе.)
Шаг 2: Создайте XML-документ.
<?xml версия="1.0"?>
<КАТАЛОГ>
<CD>
<TITLE>Империя бурлеска</TITLE>
<ARTIST>Боб Дилан</ARTIST>
<COUNTRY>США</COUNTRY>
<COMPANY>Колумбия</COMPANY>
<PRICE>10,90</PRICE>
<ГОД>1985</ГОД>
</CD>
<CD>
<TITLE>Спрячьте свое сердце</TITLE>
<ARTIST>Бонни Тайлор</ARTIST>
<COUNTRY>Великобритания</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9,90</PRICE>
<ГОД>1988</ГОД>
</CD>
<CD>
<TITLE>Лучшие хиты</TITLE>
<ARTIST>Долли Партон</ARTIST>
<COUNTRY>США</COUNTRY>
<COMPANY>RCA</COMPANY>
<PRICE>9,90</PRICE>
<ГОД>1982</ГОД>
</CD>
<CD>
<TITLE>Все еще грустно</TITLE>
<ARTIST>Гэри Мор</ARTIST>
<COUNTRY>Великобритания</COUNTRY>
<COMPANY>Девственные редорды</COMPANY>
<PRICE>10,20</PRICE>
<ГОД>1990</ГОД>
</CD>
<CD>
<TITLE>Эрос</TITLE>
<ARTIST>Эрос Рамазотти</ARTIST>
<COUNTRY>ЕС</COUNTRY>
<КОМПАНИЯ>БМГ</КОМПАНИ>
<PRICE>9,90</PRICE>
<ГОД>1997</ГОД>
</CD>
</КАТАЛОГ>
В приведенном выше коде сначала используется оператор объявления <?xml version="1.0"?>, чтобы указать, что это XML-документ и его формат соответствует стандартной спецификации XML 1.0. Далее идет содержимое документа, дерево структуры очень четкое:
<КАТАЛОГ>
<CD>
...
</CD>
<CD>
...
</CD>
</КАТАЛОГ>
Всего определено 5 наборов данных. Мы сохраняем приведенный выше код как файл cd.xml для вызова.
Шаг 3: Создайте соответствующий HTML-файл.
1. Импортируйте данные XML.
Мы знаем, что среди популярных в настоящее время браузеров только браузеры Microsoft IE5.0 и выше поддерживают XML. IE поддерживает вставку XML через объект объекта в HTML и импортирует данные с помощью метода XMLDocument.load() js. Давайте посмотрим на код: <object WIDTH="0" HEIGHT="0"
CLASSID="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39" ID="xmldso">
</объект>
Определите объект с идентификатором xmldso. Затем используйте js, чтобы ввести данные XML в область заголовка:
<script for="window" event="onload">
xmldso.XMLDocument.load("cd.xml");
</скрипт>
2. Объедините данные.
Тег <SPAN> затем будет использоваться для привязки данных XML в таблице. Среди них ID, DATASRC и DTATFLD являются атрибутами <SPAN>. Код выглядит следующим образом:
<таблица>
<tr><td>Заголовок:</td><td><SPAN ID="title" DATASRC=#xmldso DATAFLD="TITLE"></SPAN></td></tr>
<tr><td>Исполнитель:</td><td><SPAN ID="artist" DATASRC=#xmldso DATAFLD="ARTIST"></SPAN></td></tr>
<tr><td>Год:</td><td><SPAN ID="year" DATASRC=#xmldso DATAFLD="YEAR"></SPAN></td></tr>
<tr><td>Страна:</td><td><SPAN ID="country" DATASRC=#xmldso DATAFLD="COUNTRY"></SPAN></td></tr>
<tr><td>Компания:</td><td><SPAN ID="company" DATASRC=#xmldso DATAFLD="COMPANY"></SPAN></td></tr>
<tr><td>Цена:</td><td><SPAN ID="price" DATASRC=#xmldso DATAFLD="PRICE"></SPAN></td></tr>
</таблица>
3. Операция действия.
Наконец, предоставьте кнопки просмотра данных:
<INPUT TYPE=button VALUE="Предыдущий компакт-диск" ONCLICK="moveprevious()">
<INPUT TYPE=button VALUE="Следующий компакт-диск" ONCLICK="movenext()">
И используйте js для выполнения двух функций щелчка мышью: movenext() и moveprevious(). Добавьте следующий код в область заголовка:
<script Language="JavaScript">
функция movenext()
{
if (xmldso.recordset.absoluteposition < xmldso.recordset.recordcount)
{
xmldso.recordset.movenext();
}
}
функция moveprevious()
{
если (xmldso.recordset.absoluteposition > 1)
{
xmldso.recordset.moveprevious();
}
}
</скрипт>
Хорошо, давайте сначала посмотрим на весь исходный код HTML-файла:
<html>
<голова>
<script for="window" event="onload">
xmldso.XMLDocument.load("cd.xml");
</скрипт>
<script Language="JavaScript">
функция movenext()
{
if (xmldso.recordset.absoluteposition < xmldso.recordset.recordcount)
{
xmldso.recordset.movenext();
}
}
функция moveprevious()
{
если (xmldso.recordset.absoluteposition > 1)
{
xmldso.recordset.moveprevious();
}
}
</скрипт>
<TITLE>Навигация по компакт-диску</TITLE>
</голова>
<тело>
<р>
<объект ШИРИНА="0" ВЫСОТА="0"
CLASSID="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39" ID="xmldso">
</объект>
<таблица>
<tr><td>Заголовок:</td><td><SPAN ID="title" DATASRC=#xmldso DATAFLD="TITLE"></SPAN></td></tr>
<tr><td>Исполнитель:</td><td><SPAN ID="artist" DATASRC=#xmldso DATAFLD="ARTIST"></SPAN></td></tr>
<tr><td>Год:</td><td><SPAN ID="year" DATASRC=#xmldso DATAFLD="YEAR"></SPAN></td></tr>
<tr><td>Страна:</td><td><SPAN ID="country" DATASRC=#xmldso DATAFLD="COUNTRY"></SPAN></td></tr>
<tr><td>Компания:</td><td><SPAN ID="company" DATASRC=#xmldso DATAFLD="COMPANY"></SPAN></td></tr>
<tr><td>Цена:</td><td><SPAN ID="price" DATASRC=#xmldso DATAFLD="PRICE"></SPAN></td></tr>
</таблица>
<р>
<INPUT TYPE=button VALUE="Предыдущий компакт-диск" ONCLICK="moveprevious()">
<INPUT TYPE=button VALUE="Следующий компакт-диск" ONCLICK="movenext()">
</p>
</тело>
</html>
Сохраните приведенный выше код как файл cd.htm и соедините его с файлом cd.xml на втором этапе. Откройте файл cd.htm, и вы увидите тот же эффект, что и в примере выше.
Итак, мы многое узнали о XML. Давайте подведем итоги предыдущих пяти глав: краткое введение в XML, концептуальные принципы XML, терминология XML, синтаксис XML и анализ примеров этой главы. На этом обучающая часть заканчивается. В процессе написания Аджи изо всех сил старался объяснить соответствующие концепции XML в простой для понимания форме и старался изо всех сил рассказать всем о своем понимании. Однако, поскольку я не изучал XML в течение длительного времени, мое понимание XML было ограничено. Вся технология XML недостаточно систематична и глубока, поэтому некоторые упущения неизбежны. Пожалуйста, поправьте меня и простите. Спасибо.