xslt получают путь текущей папки файла

При загрузке страницы выполняется запрос AJAX.

Если вы откроете веб-инспектор при загрузке страницы, вы увидите запрос AJAX, например:

enter image description here

Если вы нажмете ctrl + f на некоторые идентификаторы, используемые в этом запросе в исходном коде страницы, вы увидите такой код JavaScript, как:

enter image description here

You можно найти этот URL с помощью scrapy и просто отправить запрос:

def parse(self, response):

    script = response.xpath("//script[contains(text(), 'getresultsb']")
    url = script.re('url:"(.+?)"')  # capture between ""
    headers = {
        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
        'X-Requested-With': 'XMLHttpRequest',
    }
    yield Request(url, 
        method='POST', 
        body='dmn=ok', 
        callback=self.parse_recent
        headers=headers,
    )

def parse_recent(self, response):
    # parse recent data here

15
задан c00ke 13 February 2009 в 14:36
поделиться

6 ответов

Можно отправить его в таблицу стилей от внешнего использования xsl:param. Затем необходимо определить то, что текущий путь при вызове с внешней стороны ;)

6
ответ дан 1 December 2019 в 02:47
поделиться

В MSXSL в Windows можно использовать расширение сценария как это:

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:msxsl="urn:schemas-microsoft-com:xslt"
  xmlns:user="http://tempuri.org/msxsl"
>

  <msxsl:script language="JScript" implements-prefix="user">
<![CDATA[
var fso = new ActiveXObject("Scripting.FileSystemObject");

function getCurrentPath(){
  return fso.GetFolder(".").Path
}
]]>
  </msxsl:script>

  <xsl:template match="/">
    <xsl:value-of select="user:getCurrentPath()"/>
  </xsl:template>

</xsl:stylesheet>

Другие процессоры XSL поддерживают похожие методы использовать внешние ресурсы (языки сценариев, библиотеки функций и т.д.), таким образом, это - просто пример.

5
ответ дан 1 December 2019 в 02:47
поделиться

Существует ли способ получить путь текущей папки из xslt файла?

Нужен он для определения местоположения другого xml и xslt файлов

Никакая потребность в любом расширении не функционирует или даже параметры, чтобы сделать это!

Любые относительные URL, используемые в href атрибут <xsl:import> или <xsl:include> инструкция разрешена на основе URL текущей таблицы стилей XSLT - это только должно иметь URL, который vlearly указан как верный в вопросе выше. Это очень удобно в импорте/включении таблиц стилей XSLT.

document() функция также разрешит относительный URL похожим способом, таким образом делая любой дополнительный XML-документ доступным использованием anrelative URL.

Наконец, вот пример, как это средства в широком масштабе используется в крупной библиотеке функций XSLT и шаблонов (FXSL 2.x):

<xsl:stylesheet version="2.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 xmlns:f="http://fxsl.sf.net/"
 exclude-result-prefixes="xs xdt f"
>
<!--
       This module contains the FXSL versions of the "standard" XPath functions

       These are intended as convenience functions, so that they can be passed 
       as parameters to other functions (e.g. to f:zipWith())                  
       or curried and passed as parameters (e.g. to f:map())                   
-->

 <xsl:import href="func-curry.xsl"/>
 <xsl:import href="func-compose-flist.xsl"/>

 <xsl:import href="func-standardArithmeticXpathFunctions.xsl"/>
 <xsl:import href="func-standardBooleanXpathFunctions.xsl"/>
 <xsl:import href="func-standardStringXpathFunctions.xsl"/>
 <xsl:import href="func-standardNodesXpathFunctions.xsl"/>
 <xsl:import href="func-standardSequencesXpathFunctions.xsl"/>
 <xsl:import href="func-standardAggregateXpathFunctions.xsl"/>
 <xsl:import href="func-standardDateTimeXpathFunctions.xsl"/>
 <xsl:import href="func-standardXSLTXpathFunctions.xsl"/>
 <xsl:import href="func-standardAxisXpathFunctions.xsl"/>

</xsl:stylesheet>
5
ответ дан 1 December 2019 в 02:47
поделиться

нет...
но Вы могли, возможно, обходное решение проблема при помощи относительных URL и/или передающих параметров в таблицу стилей.

3
ответ дан 1 December 2019 в 02:47
поделиться

В большей части процессора XSLT можно добавить пользовательские функции как расширения. Например, вот документация Saxon, как сделать это.

2
ответ дан 1 December 2019 в 02:47
поделиться

Не AFAIK (хотя Вы могли всегда передавать его как параметрический усилитель к преобразованию), но я не ясен, почему относительные пути не будут работать на Вас здесь.

1
ответ дан 1 December 2019 в 02:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: