Опубликован: 14.11.2006 | Доступ: свободный | Студентов: 5897 / 532 | Оценка: 4.18 / 3.74 | Длительность: 16:37:00
ISBN: 978-5-9556-0085-7
Лекция 10:

Работа с XML

< Лекция 9 || Лекция 10: 123456 || Лекция 11 >

AdRotator

Элемент управления AdRotator позволяет показывать рекламные баннеры и автоматически заменять их на другие. Сами баннеры описаны в файле XML или в другом источнике данных. Реклама обновляется каждый раз при обновлении страницы. В свойстве AdvertismentFile задается имя XML-файла. Скелет XML-файла таков:

<?xml version="1.0" encoding="utf-8" ?>
<Advertisements
xmlns="http://schemas.microsoft.com/AspNet/AdRotator-Schedule-
File">
</Advertisements>

Внутри узла Advertisements располагаются узлы <Ad> </Ad>

У этих узлов имеются 5 атрибутов, все они необязательны.

ImageUrl Картинка, которая будет демонстрироваться при выборе данного объявления
NavigateUrl Адрес, по которому будет совершен переход при щелчке на картинку
AlternateText Альтернативный текст, если показ изображений выключен
Impressions Все значения Impressions суммируются. Вероятность показа рекламы равна значению Impressions, деленному на эту сумму
Keyword Ключевое слово-категория рекламы, позволяет фильтровать объявления

Пример файла AdvertismentFile (он называется ads.xml):

<?xml version="1.0" encoding="utf-8" ?>
<Advertisements
xmlns="http://schemas.microsoft.com/AspNet/AdRotator-Schedule-
File">
  <Ad>
    <ImageUrl>fixed.gif</ImageUrl>
    <NavigateUrl>http://www.im.am</NavigateUrl>
    <AlternateText>Бесплатный хостинг</AlternateText>
    <Impressions>40</Impressions>
    <Keyword>хостинг</Keyword>
  </Ad>
  <Ad>
    <ImageUrl>logo2.jpg</ImageUrl>
    <NavigateUrl>http://www.nv.am</NavigateUrl>
    <AlternateText>Газета "Новое время"</AlternateText>
    <Impressions>50</Impressions>
    <Keyword>новости</Keyword>
  </Ad>
  <Ad>
    <ImageUrl>summer.jpg</ImageUrl>
    <NavigateUrl>http://www.utro.ru</NavigateUrl>
    <AlternateText>Певицу Жасмин избил муж!</AlternateText>
    <Impressions>100</Impressions>
    <Keyword>желтые новости</Keyword>
  </Ad>
</Advertisements>

На страницу помещен элемент управления. Его свойство AdvertisementFile указывает на этот файл:

<asp:AdRotator ID="AdRotator1" runat="server" 
        AdvertisementFile="ads.xml" Height="164px" Width="574px" 
/>

Если установлено свойство Keyword, то элемент управления показывает только ту рекламу, которая соответствует его содержанию. Так как его можно менять динамически, есть возможность подстраивать рекламу под нужды пользователя. Keyword должен встречаться хотя бы один раз в файле объявлений, иначе вместо рекламы будет пустой прямоугольник.

В предыдущих версиях ASP .NET можно было работать только с файлами XML. Теперь можно использовать любой источник данных, связавшись с элементом управления-источником данных. В таком случае необходимо указать как минимум 3 поля источника в свойствах ImageUrlField, NavigateUrlField и AlternateTextField:

<asp:AdRotator ID="AdRotator2" runat="server"
DataSourceId="SqlDataSource1" AlternateTextField="Alternate"
ImageUrlField="Image" NavigateUrlField="NavigateUrl" />

Файлы преобразования документа

Известно, что для форматирования HTML-файлов часто используются CSS (Cascading Stylesheets), хотя это необязательно, так как браузеры соотносят со всеми тегами определенный внешний вид. Элемент <p> задает параграф, <B> — полужирный шрифт; браузер знает, как их показывать.

Поскольку XML не использует изначально заданные теги, их значение может быть каким угодно: <table> может означать таблицу HTML, а может и деревянный стол. Поэтому браузеры показывают XML-документы "как есть". Можно задать CSS-файлы и для XML-документов, но это не рекомендуется.

Для того чтобы задать формат отображения XML-документов, используются таблицы стилей XSL. XSL — расширяемый язык стилей (Extensible Stylesheet Language), он гораздо более богат возможностями, чем CSS. XSL — больше, чем просто таблица стилей.

Один и тот же файл XML можно связать с разными таблицами XSL, в том числе программно.

XSL состоит из трех частей:

  1. XSLT - метод преобразования XML -документов.
  2. XPath - метод задания частей и путей к элементам XML
  3. XSL Formatting Object - метод форматирования XML -документов.

Самая важная часть XSL - это язык преобразований XSLT (XSL Transformation). Он применяется для преобразования XSL-документов в другие типы документов или другие XSL-документы. Часто XSLT используется для преобразования XSL-документа в формат HTML.

Для того чтобы создать XSLT-документ, выберите в диалоге создания файла XSLT file. VS 2005 создает каркас таблицы стилей. Так как таблица стилей сама по себе является XML-документом, она начинается с декларации XML:

<?xml version="1.0" encoding="utf-8"?>

Тег xsl:stylesheet задает начало таблицы стилей:

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
</xsl:stylesheet>

Если вы изучали CSS, то знаете, что для задания стилей используются правила. Правило состоит из селектора и описания стиля в фигурных скобках.

a
{
	font-size:medium;
	color:Fuchsia;
}

Это правило определяет стиль вывода гиперссылок среднего размера шрифтом фиолетовым цветом.

В XSL применяются шаблоны. Для связывания шаблона с XML-элементом используется атрибут соответствия.

Тег xsl:template задает начало шаблона. Атрибут шаблона match="/"> связывает шаблон и корневой элемент исходного XML-документа:

<xsl:template match="/">
</xsl:template>

В этот тег вложен шаблон HTML-файла. Комментарий напоминает о том, что туда нужно вставить XSL-элементы.

< Лекция 9 || Лекция 10: 123456 || Лекция 11 >
Алексей Савельев
Алексей Савельев

https://technet.microsoft.com/en-us/library/ms143221(v=sql.105).aspx

Денис Прокофьев
Денис Прокофьев

Везде написано, что это самый независимый и простой в использовании навигационный элемент управления, что он работает сразу с web.sitemap и не требует определения SiteMapDataSource.

Моя карта сайта состоит из двух страниц, вложенных друг в друга. asp:Menu, asp:TreeView отбображаются как ожидалось, а вот asp:SiteMapPath - нет. Он не виден нигде. Однако на его месте формируется разметка: <span id="SiteMapPath1"><a href="#SiteMapPath1_SkipLink" style="position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;">Проход по ссылкам навигации</a><a id="SiteMapPath1_SkipLink"></a></span> - т.е. элемент отрабатывает.

В словах xHTML это выглядит так: <asp:SiteMapPath ID="SiteMapPath1" runat="server" />. Причем не важно - внутри тега form или снаружи - всегда одинаково.

Т.к. другие нав. ЭУ работают через простой источник данных без ошибок, делаю вывод - карта составлена правильно. ИД: <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />

Карта: <?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode url="~/L11_1_simplePage.aspx" title="Страница 1"  description="Простая страница 1." >
    <siteMapNode url="~/L11_1SimplePage2.aspx" title="Страница 2"  description="Простая страница 2" />
  </siteMapNode>
</siteMap>

Почему так происходит? Вроде делаю все по примерам. VS Community 2015. NetFramework в проекте: v4.0.30319