Функция, вызов которой мы добавили в нашу Demo.DisplayNews, возвращает данные в виде XML, каждый элемент которого представлен примерно так:
Если переключиться на вкладку Preview редактора функций, то в панели Input можно увидеть именно так представленные элементы. Кроме того на этой вкладке можно увидеть как правильно обратиться в шаблоне к элементу типа данных через вызываемой функции:
Давайте воспользуемся полученной информацией, чтобы в шаблоне нашей функции, пройтись по каждому элементу и, используя XSLT, вывести значения полей типа данных нужным нам образом:
<News
Id="217ccac7-7bba-42a9-a693-daa2f39f1220"
Title="News Title"
Date="2010-12-22T00:00:00"
Summary="News Summary"
Text="<html xmlns='http://www.w3.org/1999/xhtml'> <head></head> <body>New Body</body>
</html>"
xmlns=""
/>
Если переключиться на вкладку Preview редактора функций, то в панели Input можно увидеть именно так представленные элементы. Кроме того на этой вкладке можно увидеть как правильно обратиться в шаблоне к элементу типа данных через вызываемой функции:
<!-- Function Call Result (0 ms), XPath /in:inputs/in:result[@name='GetNewsXml']/News -->
Давайте воспользуемся полученной информацией, чтобы в шаблоне нашей функции, пройтись по каждому элементу и, используя XSLT, вывести значения полей типа данных нужным нам образом:
- На вкладке Template (шаблон) редактора функций, удаляем код разметки между тегами <body></body>
- Теперь между этими тегами добавьте такой код:
<xsl:for-each select="/in:inputs/in:result[@name='GetNewsXml']/News">
<p>
<xsl:value-of select="@Title"/><br/>
<xsl:value-of select="@Date"/><br/>
<xsl:value-of select="@Summary"/>
</p>
</xsl:for-each>
- Сохраните функцию (Save).
Человеку знакомому с XSLT должно быть ясно, что происходит.
(Я намеренно не включил поле Text в вывод шаблона, потому что он содержит форматированный текст, который перед выводом нужно еще преобразовать - об этом я расскажу в другом сообщении.)
А если переключиться на вкладку Preview редактора функций, то в панели Output можно увидеть, что получится в результате работы шаблона XSLT.
Чтобы окончательно убедиться, что наша функция выводит данные из типа данных Demo.News именно так как мы указали в шаблоне, нужно добавить ее на страницу.
(Я намеренно не включил поле Text в вывод шаблона, потому что он содержит форматированный текст, который перед выводом нужно еще преобразовать - об этом я расскажу в другом сообщении.)
А если переключиться на вкладку Preview редактора функций, то в панели Output можно увидеть, что получится в результате работы шаблона XSLT.
Чтобы окончательно убедиться, что наша функция выводит данные из типа данных Demo.News именно так как мы указали в шаблоне, нужно добавить ее на страницу.
***
Цикл статей "Создание и использование структурированных данных"
Комментариев нет:
Отправить комментарий