Можете ли вы применить XSLT-преобразования, используя Sublime Text 2?

4742
erikxiv

Сценарий: у меня есть проект с несколькими файлами XML, и я хотел бы применить к ним XSLT-преобразование, а затем использовать этот вывод для других целей.

Для этого есть множество инструментов, но было бы неплохо иметь возможность оставаться в редакторе во время отладки / использования преобразования.

6
Какие инструменты вы используете и на какой системе находитесь? Я закончил тем, что сделал пользовательские (довольно сложные) сценарии сборки для `knitr` и других. mreq 11 лет назад 0
Я использую различные инструменты и платформы, многие из которых имеют возможности XSLT, поэтому мой вопрос заключался в том, существует ли плагин или аналогичный, который бы плавно позволил мне применить XSLT-преобразование внутри редактора. Внешние сценарии могут быть в порядке, если это одноразовое усилие, которое впоследствии может быть использовано для произвольных XML / XSLT-файлов. erikxiv 11 лет назад 0
Если вы можете создать собственный скрипт bash, его легко запустить из возвышенного. Если вы можете, я могу связать вас с дальнейшим чтением. mreq 11 лет назад 0
Я предполагаю, что один из приемов заключается в том, что (1) сценарию требуются два ввода: xslt и xml, и (2) вывод - новый файл. Если я напишу сценарий, который принимает три имени файла в качестве входных данных (включая имя вывода), как бы я выполнил это и посмотрел вывод, не выходя из редактора? Если возможно, не могли бы вы написать ответ, чтобы я мог принять его? erikxiv 11 лет назад 1

1 ответ на вопрос

1
mreq

If you have 3 different files you need, you can use first-line (or second if you need utf8 stuff) comments. I use it to compile the main TeX file from one of the children.

%!../main_file.tex \documentclass[12pt,a4paper] \usepackage[czech,english] 

I have a script, which looks at the first line:

match=`head -n1 $1 | grep %!` if [[ $match ]] then # do stuff with the parent's name, which is $ else # no match :/ fi 

and a simple build file aiming at my custom script:

{ "cmd": ["/path/to/build/script.sh", "$file"], "selector": "whatever" } 

This way, you can have as many "references" in your files as you want. Just switch the value of head -n1.

In XML, you would probably use <!--%somefilename --> with head -n1 $1 | grep '<!--%' and $.

To end with, I present to you my XeLaTeX build script ;)

#!/bin/bash file="$1" flag="-halt-on-error" match=`head -n1 $file | grep %!` if [[ $match ]] then if [ $ = ../ ] then cd .. && target=$ else target=$ fi else target=$file fi rubber -c 'set arguments -shell-escape' -f -m xelatex -W all $target exit 0 
Умное мышление. Во время тестирования моего xslt я просто добавляю комментарии, указывающие на имена файлов ввода / вывода, а затем использую скрипт сборки для выполнения xslt. Спасибо! erikxiv 11 лет назад 0