Если это имеет значение (см. ответ Jim). На моей машине, рабочем python 2.5:
PS C:\> python -m timeit -n 100000 10000**.5
100000 loops, best of 3: 0.0543 usec per loop
PS C:\> python -m timeit -n 100000 -s "import math" math.sqrt(10000)
100000 loops, best of 3: 0.162 usec per loop
PS C:\> python -m timeit -n 100000 -s "from math import sqrt" sqrt(10000)
100000 loops, best of 3: 0.0541 usec per loop
Я бы сделал что-то вроде следующего, которое объединит серверные таблицы стилей, прежде чем они попадут в Chrome. Первый шаг выполнен, потому что xsl: import
- это не то же самое, что замена всех мест импортированными таблицами стилей.
xsl: import
на xsl: include
(приоритет импорта не применяется к xsl: include
, поэтому вам может потребоваться изменить код и вместо этого использовать приоритеты) <xsl:template match="node()">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="xsl:include">
<!-- you'll probably want to be a bit more restrictive here -->
<xsl:copy-of select="document(@href)/xsl:stylesheet/*" />
</xsl:template>
Обновление: Просто примечание: ошибка Chrome появляется и в Safari.
Вы могли бы сделать это на Python с модулями libxml2 и libxslt ... чтобы не делать всю вашу работу за вас, а начиная с чего-то вроде этого:
import libxml2, libxslt
styledoc = libxml2.parseFile("page.xsl")
style = libxslt.parseStylesheetDoc(styledoc)
doc = libxml2.parseFile("somefile.xml")
result = style.applyStylesheet(doc, None)
Затем просто верните вещь обратно выход.
http://www.w3.org/TR/xslt#literal-result-element показывает, как решить проблему с пространством имен duplicate-xsl-name при написании таблицы стилей XSL, которая преобразует вашу существующую таблицу стилей XSL в таблицу стилей XSL с расширением
.
Однако будьте осторожны с различиями между
и ]
.
Попробуйте что-нибудь вроде этого на php:
<?php
$sXml = "<xml>";
$sXml .= "<testtag>hello tester</testtag>";
$sXml .= "</xml>";
# LOAD XML FILE
$XML = new DOMDocument();
$XML->loadXML( $sXml );
# START XSLT
$xslt = new XSLTProcessor();
$XSL = new DOMDocument();
$XSL->load( 'xsl/index.xsl', LIBXML_NOCDATA);
$xslt->importStylesheet( $XSL );
#PRINT
print $xslt->transformToXML( $XML );
?>