Пример XSL файла |
Описание |
---|---|
<?xml version="1.0"?> indent="yes" cdata-section-elements="ExtParam999Value"/> |
"Шапка" документа. Функция strip-space, указанная в шапке документа", убирает лишние пробелы во всем документе |
<xsl:template match="@*|node()"> |
определение функции преобразования match. Использовать ее предпочтительнее, чем copy, поскольку при использовании match можно одновременно переназначить имя элемента, а при использовании copy имя элементв результирующем файле сохраняется то же, что и в исходном |
<xsl:template match="DocumentElement"> |
поскольку операторы xsl-template не могут быть вложенными, сначала отдельно выполняется преобразование родительского узла Ads, а затем дочерних узлов Ad |
<xsl:template match="Objects_avito"> |
|
<xsl:template match="TaskID"> </xsl:template> <xsl:template match="StateName"> </xsl:template> <xsl:template match="ExtParam111Value"> </xsl:template> |
если основные или дополнительные параметры, возвращаемые SQL View, не нужны в результирующем файле, для них создаются "пустые" преобразования. В данном примере не нужны ID задачи, название статуса и значение ДП с ID=111 |
<xsl:template match="ExtParam222Value"> <xsl:template match="ExtParam333Value"> |
ДП с ID=222 записывается в поле с именем CompanyName
ДП с ID=333 записывается в поле с именем Price
|
<xsl:template match="ExtParam444Value"> |
Рекурсивная обработка атрибутов, текста и элементов, пока не останется ни одного дочернего элемента |
<xsl:template match="CreatedTime"> |
Обрезание вывода формата даты с YYYY-MM-DDThh:mm:ss до YYYY-MM-DD |
<xsl:template match="ExtParam555Value"> </xsl:otherwise> |
Условное преобразование: значение ДП с ID=555 записывается в поле с именем Category. При этом если значение ДП равно "Апартаменты", то оно преобразуется в значение "Квартиры", иначе в поле Category не записывается ничего |
<xsl:template match="//url"> |
Поиск элемента "url", затем запись этого элемента в качестве атрибута в новый элемент "Image" |