Выделите и отредактируйте XML в браузере - PullRequest
4 голосов
/ 13 сентября 2010

Попытка предоставить пользователю редактируемую страницу XML в браузере.

Например, следующее является частью XML.

<Employee name="John Doe" type="contract" ID="1000"> 
    <Salary>10000</Salary>  
    <Email>johndoe@johndoe.com</Email>  
</Employee>

Когда вышеприведенное представлено пользователю в браузере (IE или FF), пользователь должен иметь возможность выделить атрибут или значение. Когда выделено и нажата вторая кнопка мыши, появится всплывающее меню для редактирования. Для атрибутов и тегов это может быть что-то вроде ID-TEST-PRESENT или ID-TEST-OPTIONAL. Теперь вместо идентификатора атрибут должен измениться на ID-TEST-PRESENT при выборе.

Аналогично, для значений может быть представлено текстовое поле, в котором пользователь может ввести новое значение. Затем этот обновленный XML-файл необходимо отправить на сервер и сохранить.

Это выполнимо? Если да, то что было бы самым простым способом.

Я всегда писал встроенные приложения. Это мой первый набег на стороне веб-браузера. Любая помощь приветствуется.

Ответы [ 4 ]

1 голос
/ 24 июня 2012

Одним из способов создания интерфейса для редактирования информации в определенном словаре XML является использование XForms. (Я думаю, что это, безусловно, самый простой и лучший, но YMMV.) Учитывая соответствующую инфраструктуру (см. Ниже), использование XForms для того, что вы описываете, будет включать:

  1. Написать форму, используя XHTML + XForms. Укажите виджеты редактирования для тех частей XML, которые пользователь хочет редактировать; сделать другие части XML доступными только для чтения (или вообще не отображать их). Определите, как вы хотите, чтобы отредактированные данные были представлены. Стиль с использованием CSS.
  2. Когда пользователь открывает форму, процессор XForms автоматически загружает XML-документ и предоставляет виджеты редактирования, как указано в XForm, указанном вами на шаге 1. Пользователь редактирует.
  3. Когда пользователь нажимает кнопку «Отправить», браузер отправляет данные обратно на сервер в виде XML, а программное обеспечение на сервере выполняет необходимые проверки (это пользовательский ввод из открытого Интернета, его нужно проверить) и обрабатывает его соответствующим образом.

Как вы можете видеть, это немного проще, чем использовать AJAX (по крайней мере, после настройки инфраструктуры).

Какая инфраструктура необходима для XForms, зависит отчасти от того, какую реализацию XForms вы используете.

Для клиентских реализаций XForms (таких как XSLTForms из AgenceXML или Formula из EMC) вам потребуется (a) копия программного обеспечения на вашем сервере (в случае XSLTForms это означает одну таблицу стилей XSLT, одну Библиотека Javascript и один файл CSS), (b) возможно, соответствующая ссылка в самой форме (как это нужно сделать, зависит от реализации), и (c) сервер, готовый принимать запросы PUT. В некоторых контекстах (c) будет сложнее всего выполнить настройку, но подойдет любой сервер, который предоставляет интерфейс WebDAV, поэтому SVN с автоматическим версионированием, Apache (один или поверх Subversion) и другие инструменты все могут быть использованы.

Для серверных реализаций (таких как Orbeon Forms или BetterForm) вам необходимо установить реализацию XForms и запустить ее на своем веб-сервере; поскольку они, как правило, являются сервлетами, вам нужно будет поместить их в движок сервлетов. Как правило, они поставляются с какой-либо формой сервера WebDAV.

Стивен Пембертон из W3C и CWI написал полезное учебное введение в XForms ; Я веду список указателей на это и на другие материалы, связанные с XForms, которые также могут быть полезны.

1 голос
/ 16 января 2011

Конечно, это выполнимо, но это не тривиально. По крайней мере, не для тех, кто не привык к Javascript и манипулированию DOM. Вам нужно будет проанализировать XML и создать HTML-документ с прослушивателями событий Javascript для каждого элемента.

Вы можете попробовать использовать существующий компонент и изменить его при необходимости. Я нашел подобный вопрос здесь:

https://stackoverflow.com/questions/378205/web-xml-editor-with-xml-syntax-highlighting

Если вы не имеете дело с общими файлами XML, вам, вероятно, лучше просто прочитать XML и создать стандартную форму HTML. Простейшим способом было бы основывать все на базе данных, которая при необходимости экспортирует в XML для внутренних процессов. Это значительно упрощает добавление / редактирование нескольких строк данных

0 голосов
/ 07 июня 2013
  • codemirror кажется лучшим
  • jquery.xmleditor может быть тем, что вы ищете. Они предлагают графический интерфейс для редактирования XML. Для текстового редактора XML они используют редактор Cloud9 . Помните, что Cloud9 имеет лицензию GPL.
  • LiveXMLEdit больше похож на редактор, похожий на проводник, но, возможно, он тоже помогает
  • AXEL - это библиотека для создания приложений разработки XML на основе шаблонов документов.
0 голосов
/ 30 апреля 2011

Для этого вам нужно много работать. Для общего редактирования вам понадобится следующее

  1. Синтаксический анализатор XML на заднем конце для анализа XML-файла в 2 форматах (A) Для преобразования в требуемый формат HTML для внешнего интерфейса. (B) Чтобы преобразовать в необходимый формат бэкэнда. Это сложно и требует некоторых мыслей. Метод грубой силы прост, но очень неэффективен.
  2. Установите подключение AJAX к вашему сценарию, которое может принимать и распознавать части XML. Для этого вам понадобится какой-то механизм для идентификации детали ... может быть идентификатор передан через HTML.
  3. Интерфейс для AJAX должен обновить базу данных / файл и сделать все необходимое.

Это простая раскладка. Надо много работы сделать. Проведите исследование

Пункт

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...