Функция starts-with (XPath)
Возвращает значение TRUE, если строка первого аргумента начинается со строки второго аргумента. В противном случае возвращает FALSE.
boolean starts-with(string, string)
Заметки
Если аргумент не имеет строкового типа, он сперва преобразуется в строку с помощью функции string(), после чего вычисления производятся с результатом преобразования.
Предупреждение
Преобразованиястрок для наборов узлов, передаваемых этой функции в качестве аргументов, могут привести к непредвиденным результатам.Для получения дополнительной информации см. Функция string (XPath).
Эта функция учитывает регистр символов.
Пример
Следующий пример иллюстрирует использование функции starts-with() для запроса коллекции книг, заголовки которых начинаются с заглавной буквы "W".
XML-файл (starts-with.xml)
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"
href="contains.xsl"?>
<bookstore>
<book>
<title>The Weather Pattern</title>
<author>Weather Man</author>
<price>100.00</price>
</book>
<book>
<title>Weaving Patterns</title>
<author>Weaver</author>
<price>150.00</price>
</book>
<book>
<title>Speech Pattern</title>
<author>Speaker</author>
<price>15.00</price>
</book>
<book>
<title>Writing Style</title>
<author>Writer</author>
<price>1500.00</price>
</book>
</bookstore>
XSLT-файл (starts-with.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"
omit-xml-declaration="yes"/>
<xsl:template match="/">
<html>
<head><title>example</title></head>
<body>
<xsl:apply-templates select="//book"/>
</body>
</html>
</xsl:template>
<xsl:template match="book">
<xsl:if test="starts-with(title, 'W')">
<DIV>
<B><xsl:value-of select="title"/></B> by
<I><xsl:value-of select="author"/></I> costs
<xsl:value-of select="price"/>.
</DIV>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Вывод
Таблица стилей XSLT, примененная к вышеуказанному XML-файлу (starts-with.xml), дает следующий результат:
Weaving Patterns компании Weaver по цене 150,00 долл.
Writing Style автора Writer по цене 1500.00 долл.