#javascript #xml #file #text-editor
#javascript #xml #файл #текстовый редактор
Вопрос:
У меня есть xml-записи с кодом javascript, встроенным в элемент. Нравится:
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<script>
<sys_id>011fb5f68fb679a200b0af5a531815ae</sys_id>
<sys_updated_on>2010-06-04 04:05:18</sys_updated_on>
<js_script>function myJavascriptFunction(){amp;#13;
var count =0 ;amp;#13;
alert('entering myJavascriptFunction');amp;#13;
}
</js_script>
<name>myJavascriptFunction</name>
</script>
</xml>
этот файл сохраняется как XML-файл (но я был бы рад изменить суффикс, если бы это помогло).
Цель этого заключается в том, что утилита командной строки выполняет циклическую передачу файлов в базу данных.
Я хотел бы быстро отредактировать элемент script, используя что-то вроде notepad — с помощью справки по форматированию языка javascript. Затем я хотел бы сохранить содержимое элемента script обратно в файл.
Я рассмотрел возможность «инвертирования» файла и сохранения содержимого элемента javascript непосредственно в виде файла .js и поместил xml-элементы в расширенные свойства файла. Это упростило бы редактирование с поддержкой языка, но кажется, что это большая работа, и тогда файлы нелегко переносить через ОС и системы управления версиями.
Я упускаю что-то очевидное? Есть ли умный подход к этому?
Ответ №1:
Поместите свой скрипт внутри раздела CDATA
Комментарии:
1. скрипт отлично работает как в CDATA, так и вне его. Я действительно ищу способ редактировать javascript внутри элемента в редакторе без больших усилий по вырезанию и вставке. (открыть xml, вырезать . js-код, вставить в редактор, отредактировать, вставить обратно в элемент, сохранить …)
2. Тогда, как отмечали другие, лучше всего хранить ваши файлы javascript в отдельных файлах .js и указывать на них с помощью атрибута src= элемента script. Если по какой-то причине вам действительно требуется, чтобы скрипты были встроенными, вы все равно можете сохранять отдельные файлы для редактирования, но используйте xslt (или, возможно, xinclude ), чтобы объединить их вместе для окончательного вывода.
Ответ №2:
Да — не используйте XML. Используйте обычные файлы JavaScript или обычные html-файлы или даже храните их в базе данных.
Комментарии:
1. спасибо, но база данных не вариант — они должны храниться в системе управления версиями на основе файлов (git или hg). Изначально они приходят ко мне в формате xml. Как уже было сказано, я мог бы сохранить их в формате .js, но все остальные атрибуты нужно было бы сохранить где-нибудь в файле.
2. Тогда ваш самый практичный способ, если вы должны использовать XML, — сохранить их в отдельном файле. Вместо вашего тега script создайте тег src и укажите в его значении путь к файлу или что-то в этом роде. В качестве замечания не по теме, я бы рекомендовал использовать JSON или YAML поверх XML, если ситуация станет более сложной.