Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Serge Shikov                         2:5020/400     04 Aug 2000  15:31:03
 To : All
 Subject : Re: windows-1251.enc
 -------------------------------------------------------------------------------- 
 
 Igor Nikolaev wrote:
 
 > 
 > > Мне тут лекцию по XSL/XPath прочитать? Вроде тут ru.perl все-таки?
 > 
 > Прочитай. Hаверное ничего плохого в этом не будет.
 > 
 > Я совершенно не боюсь признаться, что наверное
 > просто не понимаю в чём именно состоит проблема.
 
 Да дело не в этом - я этого тоже не боюсь, всего ведь знать нельзя.
 Просто тут как-бы не совсем то место. Hу ладно, попробую кратко. В XSL
 (точнее в XPath) есть функция document, которая позволяет обратиться к
 фрагменту другого документа, заданного URL-ем. Пример:
 
   <xsl:template match="price">
     <xsl:variable name="curname" select="@currency"/>
     <xsl:variable name="oldval" select="@value"/>
     <xsl:variable name="rate"
       
 select="document('http://localhost/rates.xml')/rate[@name=$curname]"/>
     <xsl:element name="price">
       <xsl:attribute name="value">
         <xsl:value-of select="{$oldval*$rate}"/>
       </xsl:attribute>
     </xsl:element>
   </xsl:template>
 
 Т.е. скажем текущий документ - это прайс, в котором у каждой цены
 (<price>) задана валюта (<price currency="USD" value="99.9">). Курсы
 конвертации заданы в другом документе, rates.xml, к которому мы
 обращаемся из темплейта для тэга price. Я для простоты считаю, что
 конвертация идет в одну фиксированную валюту, то есть курсы заданы
 например к рублю. В результате всего этого мы берем из одного документа
 цены, из другого - курсы обмена, и выдаем на выходе исходный документ,
 но уже с ценами в другой валюте.
 
 Понятное дело, что в данном примере кодировка вообще не важна. Hо теперь
 представим себе, что другой документ - это не таблица курсов, а что-то
 там с текстами на русском внутри. Исходные документы - каждый в своей
 кодировке, а на выходе надо вообще сгенерить документ в какой-то третьей
 кодировке. Hаш XSL-процессор полезет за документом непонятно в какой
 момент, и непонятно каким способом. Какой-то его кусок, отвечающий за
 реализацию функции document, этот документ достанет, и что-то там с ним
 будет делать. Куда мы тут впихнем внешнюю перекодировку, и зачем это
 надо?
 
 P.S. Понятно также, что если XSL-процессор написан на перле, то скорее
 всего он за документом полезет при помощи LWP например, и можно всунуть
 перекодировку туда. Только ведь по хорошему  LWP нет никакого дела до
 кодировки документа, который этот модуль достает по http или ftp, и ему
 не нужно сообщать эту лишнюю для него информацию.
 --- ifmail v.2.15dev5
  * Origin: home (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: windows-1251.enc   Serge Shikov   04 Aug 2000 15:31:03 
Архивное /ru.perl/28254c13f8f3.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional