Как я представляю и оптимизирую XSLT?

Я использую Visual Studio 2017 и столкнулся с этим, когда обновлял некоторые пакеты Nuget. Что для меня работало, так это открыть файл web.config и найти узел <runtime><assemblyBinding> и удалить его. Сохраните web.config и перестройте проект.

Посмотрите на окно Error List. Вы увидите, что похоже на массовое долгое предупреждение о привязке конфликтов. Дважды щелкните по нему, и он автоматически воссоздает блок <runtime><assemblyBinding> с правильными сопоставлениями.

29
задан pauldoo 12 January 2009 в 09:59
поделиться

4 ответа

какой механизм XSLT Вы используете? При использовании механизма.NET и Visual Studio, Вы могли бы использовать профилировщик XSLT интегрированный в Visual Studio, которая является очень полезным.

Другими превосходными профильными инструментами является Altova Шпион XML и Кислород .

при регистрации XSLT было бы легче сказать Вам, где возможные узкие места. В целом будьте осторожны с выражениями XPath такой как '//', предшествуя::* и после::*. Еще некоторые правила и лучшие практики:

  1. Избегают повторенного использования "//item".
  2. не оценивают тот же набор узлов несколько раз; сохраните его в переменной.
  3. Избегают <xsl:number>, если Вы можете. Например, при помощи положения ().
  4. Использование <xsl:key>, например, для решения группирующихся проблем.
  5. Избегают сложных шаблонов в шаблонных правилах. Вместо этого используйте в правиле.
  6. Быть осторожным при использовании preceding[-sibling] или following[-sibling] оси. Это часто указывает на алгоритм с n-squared производительностью.
  7. не сортируют тот же набор узлов несколько раз. При необходимости сохраните его в результате древовидный фрагмент и получите доступ к нему с помощью node-set() дополнительная функция.
  8. Для вывода текстового значения простого #PCDATA элемент используйте <xsl:value-of> в предпочтении к <xsl:apply-templates>.

(от [1 112] http://www.dpawson.co.uk/xsl/sect4/N9883.html#d15756e150 )

После этих правил будет обычно приводить к очень эффективному XSLT, и Вы возможно не должны будете использовать профилировщика вообще.

Относительно Вашего вопроса о XSLT в браузере: Я не рекомендовал бы его, потому что сначала Вы не независимы от платформы (не, каждый браузер мог бы поддерживать его, или некоторые браузеры могут только поддерживать его с плохо работающим механизмом), и второй, Вы не можете управлять используемым механизмом.

30
ответ дан Dirk Vollmar 14 October 2019 в 08:07
поделиться

Реклама Кислородный редактор XML имеет функцию профилирования и отладки файлов XSLT. Это - хороший XML-редактор, также.

2
ответ дан Chris Frederick 14 October 2019 в 08:07
поделиться

Мне нравится использовать XMLSpy Altova для основанных на Windows машин. Это также имеет встроенного профилировщика. Вы можете проверять видео на использование редактора . (просканируйте к 5:45 для получения дополнительной информации о профилировщике). Это - коммерческий продукт... с периодом гонок на время:)

1
ответ дан null 14 October 2019 в 08:07
поделиться

, Если Вы обеспечиваете код XSLT и XML-документ, относительно которого Вы наблюдаете проблему, я и другие люди могли попытаться помочь .

Вот являются [приблизительно 1 111] подсказками по использованию и производительности XSLT от [1 112] Michael Kay :

Восемь подсказок для того, как использовать XSLT эффективно :

  1. Сохраняют исходные документы маленькими. Если необходимое разделение документ сначала.
  2. Сохраняют процессор XSLT (и Java VM) загруженный в памяти между выполнениями
  3. , Если Вы неоднократно используете ту же таблицу стилей, скомпилируйте его сначала.
  4. при использовании того же исходного документа неоднократно сохраните его в памяти.
  5. при выполнении того же преобразования неоднократно не делать. Сохраните результат вместо этого.
  6. Сохраняют выходной документ маленьким. Например, при генерации HTML используйте CSS.
  7. Никогда не проверяют тот же исходный документ несколько раз.
  8. преобразования комплекса Разделения в несколько этапов.

Восемь подсказок для того, как записать эффективный X SLT:

  1. Избегают повторенного использования" //item".
  2. не оценивают тот же набор узлов несколько раз; сохраните его в переменной.
  3. Избегают <xsl:number>, если Вы можете. Например, при помощи position().
  4. Использование <xsl:key>, например, для решения группирующихся проблем.
  5. Избегают сложных шаблонов в шаблонных правилах. Вместо этого используйте <xsl:choose> в правиле.
  6. Быть осторожным при использовании preceding[-sibling] или following[-sibling] оси. Это часто указывает на алгоритм с n - производительность в квадрате.
  7. не сортируют тот же набор узлов несколько раз. При необходимости сохраните его в результате древовидный фрагмент и получите доступ к нему с помощью node-set() дополнительная функция.
  8. Для вывода текстового значения простого #PCDATA элемента используйте <xsl:value-of> в предпочтении к [1 110].
21
ответ дан Dimitre Novatchev 14 October 2019 в 08:07
поделиться
Другие вопросы по тегам:

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