| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
GoodVin 22.04.2004 15:48
Задача:# загружаем карту сайта
$mapXML[^file::load[text;../_xml/spravka/map.xml]]
# получаем отдельный XML с картой сайта
$XML-mapXML[^xdoc::create{<?xml version="1.0" encoding="$request:charset"?>
^untaint[as-is]{$mapXML.text}
}]
# создаем XSL-шаблон для выбора пути и получаем путь в переменную
$XSL-pathXML[^xdoc::create[/xsl/]{<?xml version="1.0" encoding="$request:charset"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="Страница[@Ид = $id]">
<xsl:value-of select="@ПутьXML"/>
</xsl:template>
</xsl:stylesheet>
}]
$transformedDoc[^XML-mapXML.transform[$XSL-pathXML]]
$pathXML[^transformedDoc.string[$.method[text]]]
# создаем XSL-шаблон для выбора пути и получаем путь в переменную
$XSL-pathXSL[^xdoc::create[/xsl/]{<?xml version="1.0" encoding="$request:charset"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="Страница[@Ид = $id]">
<xsl:value-of select="@ПутьXSL"/>
</xsl:template>
</xsl:stylesheet>
}]
$transformedDoc[^XML-mapXML.transform[$XSL-pathXSL]]
$pathXSL[^transformedDoc.string[$.method[text]]]
# выводим значения для проверки
$pathXML
$pathXSL/.xml (фрагмент)/ <КартаСайта> <Раздел Наименование="СПРАВОЧНАЯ" Ид="1" Описание="Справочный раздел" ЦветРаздела="#99D228"> <Страница Ид="1003" ПутьXML="../_xml/spravka/ext.xml" ПутьXSL="../_xsl/dir/spravka.xsl"></Страница> </Раздел> </КартаСайта>Буду рад если удастся убрать из кода хоть 1 строку :)