Как связать XML-файл с XSLT-файлом?

Примеры на

http://en.wikipedia.org/wiki/XSLT

или

http://www.w3schools.com/xsl/tryxslt .asp? xmlfile = cdcatalog & xsltfile = cdcatalog

кажутся независимыми файлами XML и XSLT. Дон» они должны быть связаны? Или вы как-то помещаете их в один файл? В противном случае, как один файл узнает, как всасывать данные из другого файла?

40
задан Dimitre Novatchev 11 August 2010 в 13:07
поделиться

4 ответа

Вы можете добавить это после объявления xml.

<?xml-stylesheet type="text/xsl" href="yourxsl.xsl"?>
64
ответ дан 27 November 2019 в 01:37
поделиться

Вы также можете выполнить преобразование на странице html:

<script type="text/javascript">
  var xml = new ActiveXObject("Microsoft.XMLDOM")
  xml.async = false
  xml.load("some_xml.xml")
  var xsl = new ActiveXObject("Microsoft.XMLDOM")
  xsl.async = false
  xsl.load("some_xsl.xsl")
  document.write(xml.transformNode(xsl))
</script>
3
ответ дан 27 November 2019 в 01:37
поделиться

Вам понадобится внешний инструмент или библиотека для применения преобразования Xslt к Xml. Как вы это делаете, зависит от вашей среды программирования, однако для .Net XslCompiledTransform - это класс, используемый для применения преобразования Xslt к фрагменту Xml (либо файлу, либо XML в памяти).

В качестве альтернативы вы можете использовать инструмент командной строки Microsoft xslt.exe - вам нужно будет самостоятельно изучить, как сделать то же самое в других языках программирования / операционных системах.

1
ответ дан 27 November 2019 в 01:37
поделиться

Один файл не знает, как «втягивать данные» другой файл, потому что файлы не являются тем, что будет выполнять обработку.

Что-то вроде XSLT-процессора будет делать это, и то, как ему сообщают, над чем работать, варьируется, поэтому он может обрабатывать различные варианты использования.

В случае рендеринга всего преобразования XML-документа, когда он отображается в браузере, тогда инструкция по обработке:

<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>

(На самом деле это должно было быть «text / xml» для типа, поскольку это mime- тип документа XSL, но это было в конце войны браузеров, и реализация функций браузера по-прежнему часто происходила быстрее, чем скорость здравого смысла).

Если вы управляете преобразованием программно, используя какую-либо библиотеку (есть объекты для клиентского javascript и библиотеки на любом языке, с которого вы, вероятно, захотите это сделать), то у вас достаточно контроля, чтобы детализировать, что трансформируется чем. Вот несколько интересных случаев.

  1. Вы можете даже иметь документ с узлом содержимого и узлом преобразований, выбрать их и запустить преобразование.

  2. Если вы выполняете одно и то же преобразование в нескольких XML-документах, очень часто более эффективно вызвать какой-либо метод PreCompile () или аналогичный, который использует этот вызов для использования всех последующих преобразований.

  3. Вы можете передавать значения параметрам верхнего уровня в XSLT.

4
ответ дан 27 November 2019 в 01:37
поделиться
Другие вопросы по тегам:

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