В данной статье хотелось бы рассказать про xslt конструкцию <xsl:value-of />.
Данная конструкуия является, наверно, самой простой и понятной. Она просто выводит то, что вы ей указали вывести. Это может быть текст внутри узла, содержимое атрибута и т.д. Позже, мы рассмотрим несколько примеров использования <xsl:value-of />.
Для начала посмотрим, что нам говорит о данной конструкции интернет:
Элемент <xsl:value-of /> - Вставляет значение выбранного узла в виде текста.
(взято с msdn.microsoft.com)
По факту, я бы сказал, что данная конструкция выводит в виде текста не только значение узла в виде текста, но и значение атрибута, параметра и переменной.
У конструкции <xsl:value-of /> есть два атрибута:
Давайте ближе к примерам.
Возьмем маленький xml , который можно получить обратившить к любой странице в UMI.CMS, добавив .xml в конце её значения в адресной строке (например http://example.ru/test.xml)
<result module="content" method="content" domain="example.ru" system-build="49344" lang="ru" header="Тестовая страница" title="UMI.CMS - Тестовая страница" site-name="test site" request-uri="/test/.xml" pageId="7"> <meta> <keywords>umihelp.ru UMI.CMS umi тестовый сайт</keywords> <description/> </meta> <user id="2" status="auth" login="admin" xlink:href="uobject://2" type="sv"/> <parents/> <page id="7" parentId="0" link="/test/" is-active="1" object-id="351" type-id="60" type-guid="content-page" update-time="1425309789" alt-name="test"> <basetype id="30" module="content">Страницы контента</basetype> <name>Тестовая страница</name> <properties> <group id="84" name="common"> <title>Общее</title> <property id="3" name="h1" type="string"> <title>Поле H1</title> <value>Тестовая страница</value> </property> <property id="4" name="content" type="wysiwyg"> <title>Контент</title> <value> <p>Вы находитесь на тестовой странице созданной для umihelp.ru проекта</p> </value> </property> </group> <group id="86" name="more_params"> <title>Дополнительные параметры</title> <property id="12" name="show_submenu" type="boolean"> <title>Показывать подменю</title> <value>1</value> </property> <property id="416" name="info_page" type="boolean"> <title>Информационная страница</title> <value>1</value> </property> </group> </properties> </page> </result>
xml страницы http://example.ru/test/
Затем, разберем несколько примеров вызова <xsl:value-of /> конструкции:
<xsl:value-of select="result/page/name" />
<xsl:value-of select="result/@pageId" />
<xsl:value-of select="$var1" /> <xsl:value-of select="$var2" />
<xsl:value-of select=".//property[@name='content']/value" disable-output-escaping="yes"/>
<xsl:value-of select="'произвольный текст'" />
<xsl:value-of select="999" />
<xsl:value-of select="(6 + 4) div 2" />
P.S. следует добавить, что если в атрибуте select будет указанно xPath выражение, которое возвращает несколько результатов (например .//property/value), то <xsl:value-of /> будет выводить первый из результатов.