Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






Связывание с другими HTML-элементами



 

При связывании элемента SPAN с полем XML элемент просто отображает содержимое поля. Это происходит потому, что свойство innerText элемента SPAN, которое определяет текст, отображаемый элементом, сцеплено с полем XML.

В DHTML, поддерживаемом Internet Explorer, каждый HTML-элемент обладает набором свойств, которые можно использовать для установки или извлечения различных характеристик элемента с помощью кода сценария. Кроме того, для свойства автоматически устанавливается значение поля XML, с которым оно сцеплено.

Однако, как видно из таблицы 5.18, для некоторых сцепляемых HTML-элементов с полем XML сцепляются и другие свойства.

При связывании с элементом SPAN реально сцепляются его свойства innerText и innerHTML. Свойство inner-Text устанавливает или получает текстовое содержимое элемента, не включая в него HTML-разметку. Свойство innerHTML устанавливает или получает полное содержимое элемента, включая любую HTML-разметку.

Например, для следующего сцепленного элемента А (элемент “анкер”, используемый для создания гиперссылок) свойство href сцеплено с полем XML:

 

<А DATASRC="dsolnventory" DATAFLD="REVIEWS">

Щёлкните здесь для просмотра

</A>

 

Это свойство, как и атрибут HREF элемента, устанавливает URL для гиперссылки. Следовательно, из поля XML извлекается URL гиперссылки для сцепленного элемента А, а не его текстовое содержимое. (XML-поле REVIEWS в рассматриваемом примере должно содержать корректный URL.)

В качестве другого примера рассмотрим связывание поля флажка элемента INPUT через свойство checked (которое изменяет статус выбора элемента (установлен или сброшен флажок)) с XML-полем:

 

<INPUTTYPE="CHECKBOX" DATASRC="#dsolnventory" DATAFLD="INSTOCK">

 

Если XML-поле INSTOCK пусто, либо содержит текст "0" или "false", то поле флажка очищается. Если оно содержит какой-либо другой текст, флажок устанавливается.

В качестве последнего примера рассмотрим элемент IMG (изображение), свойство src которого сцеплено с XML-полем. Это свойство, как и атрибут SRC элемента, задает URL файла, содержащего графические данные. Листинги 1.21 и 1.22 иллюстрируют технику сцепления для элемента

IMG.

 

<?xml version=”1.0”?>

<!-- Имя файла: Inventory03.xml -->

<INVENTORY>

<BOOK>

<COVERIMAGE>VoiMir.bmp</COVERIMAGE>



<TITLE>Война и мир</TITLE>

<AUTHOR>Лев Толстой</AUTHOR>

<BINDING>Жёсткая обложка</BINDING>

<PAGES>510</PAGES>

<PRICE>12 000 рублей</PRICE>

</BOOK>

<BOOK>

<COVERIMAGE>PresNak.bmp</COVERIMAGE>

<TITLE>Преступление и наказание</TITLE>

<AUTHOR>Фёдор Достоевский</AUTHOR>

<BINDING>Мягкая обложка</BINDING>

<PAGES>590</PAGES>

<PRICE>14 000 рублей</PRICE>

</BOOK>

<BOOK>

<COVERIMAGE>KorMar.bmp</COVERIMAGE>

<TITLE>Королева Марго</TITLE>

<AUTHOR>Александр Дюма</AUTHOR>

<BINDING> Мягкая обложка </BINDING>

<PAGES>410</PAGES>

<PRICE>10 000 рублей</PRICE>

</BOOK>

<BOOK>

<COVERIMAGE>ZaterMir.bmp</COVERIMAGE>

<TITLE>Затерянный мир</TITLE>

<AUTHOR>Артур Конан Дойль</AUTHOR>

<BINDING>Жёсткая обложка</BINDING>

<PAGES>350</PAGES>

<PRICE>9 000 рублей</PRICE>

</BOOK>

</INVENTORY>

Листинг 1.21

 

<HTML>

<HEAD>

<TITLE>Описание книги</TITLE>

</HEAD>

<BODY>

<XML ID="dsoInventory" SRC="Inventory03.xml"></XML>

<H2> Описание книги </H2>

<TABLE DATASRC="#dsoInventory" BORDER="1" CELLPADDING="5">

<THEAD>

<TH>Рисунок</TH>

<TH>Заголовок</TH>

<ТН>Автор</TH>

<TH>Обложка</TH>

<ТН>Страниц</TH>

<ТН>Цена</TH>

</THEAD>

<TR AUGN="center">

<TD><IMG DATAFLD="COVERIMAGE"></TD>



<TD><SPAN DATAFLD="TITLE" STYLE="font-styte:italic"></SPAN></TD>

<TD><SPAN DATAFLD="AUTHOR"></SPAN></TD>

<TD><SPANDATAFLD="BINDING"></SPAN></TD>

<TD><SPAN DATAFLD="PAGES"></SPAN></TD>

<TD><SPAN DATAFLD="PRICE></SPAN></TD>

</TR>

</TABLE>

</BODY>

</HTML>

Листинг 1.22

 

Листинг 1.21 есть XML-документ, который содержит поле с именем COVERIMAGE в каждой записи BOOK. Каждое поле COVERIMAGE содержит URL графического файла, который хранит рисунок обложки книги. Листинг 1.22 - это та же самая HTML-страница, что и в Листинге 1.15, за исключением того, что в начало каждой строки таблицы добавлена дополнительная ячейка (элемент TD), которая содержит элемент IMG, а не SPAN. Элемент IMG сцеплен с полем COVERIMAGE XML-документа, и поэтому отобразит рисунок обложки для каждой книги, как показано на следующем рисунке.

Рисунок 43. Сцепление с элементами XML-документа, в которых указано имя файла рисунка

 

Можно поэкспериментировать со связыванием некоторых других HTML-элементов, содержащихся в таблице 5.18, чтобы познакомиться с их сцепляемыми свойствами и способами использования элементами данных, предоставляемых XML-полями, с которыми они сцеплены.

 

Передача HTML-разметки

 

По умолчанию, если символьные данные XML-поля включают HTML-разметку, HTML-элемент, сцепленный с этим полем, воспринимает и отображает символы разметки как литерал. Рассмотрим, например, следующий элемент SPAN, который сцеплен с XML-полем AUTHOR-BIO:

<SPAN DATASRC="#dsoInventory" DATAFLD="AUTHOR-BIO"></SPAN>

 

Если поле AUTHOR-BIO содержит элемент I (курсив), например:

 

<AUTHOR-BIO>Джек Лондон - американский писатель, живший с 1876 по 1916 гг., им была написана повесть &lt;I>Зов предков&lt;I> и множество других литературных произведений.</AUTHOR-BIO>

 

элемент SPAN, который воспринимает символы HTML-разметки как литералы, отобразит содержимое поля следующим образом:

 

Джек Лондон - американский писатель, живший с 1876 по 1916 гг., им была написана повесть <I>Зов предков<I> и множество других литературных произведений.

 

Для некоторых сцепляемых HTML-элементов, таких как SPAN, можно установить для атрибута DATAFORMATAS значение “HTML”, что заставит браузер обрабатывать любую HTML-разметку, содержащуюся в тексте поля, а не просто воспринимать ее как символы-литералы. Предположим, что вышеуказанный элемент SPAN определён следующим образом:

 

<SPAN DATASRC="dsoInventory" DATAFLD="AUTHOR-BIO"

DATAFORMATAS="HTML"></SPAN>

 

Текст внутри элемента I будет воспринят как текст с курсивным начертанием:

 

Джек Лондон - американский писатель, живший с 1876 по 1916 гг., им была написана повесть Зов предков и множество других литературных произведений.

 

Присвоение атрибуту DATAFORMATAS его значения по умолчанию, “TEXT”, дает тот же эффект, что и пропуск этого атрибута -символы HTML-разметки будут восприниматься как литералы.

Чтобы узнать, какие элементы вы можете использовать для передачи HTML-разметки посредством установки атрибута DATAFORMATAS="HTML", обратитесь к таблице 5.18. Для таких элементов в предпоследнем столбце таблицы (“Передает ли разметку HTML, содержащуюся в поле XML?”) стоит “Да”.

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

При добавлении HTML-разметки в XML-поле, нельзя помещать в текст символ левой угловой скобки (<) или знак амперсенда (&) как литералы. (Эти символы недопустимы в символьных данных элемента.) Однако их можно вставлять с использованием предопределённых ссылок на примитивы &lt; и &amp;. Другой возможностью сделать HTML-разметку более наглядной, что особенно полезно для большого фрагмента HTML, является использование разделов CDATA (см. выше).

 


Эта страница нарушает авторские права

allrefrs.ru - 2019 год. Все права принадлежат их авторам!