2010-09-13 2 views
4

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

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

<Employee name="John Doe" type="contract" ID="1000"> 
    <Salary>10000</Salary> 
    <Email>[email protected]</Email> 
</Employee> 

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

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

Является ли это выполнимым? Если да, то каким будет самый простой способ.

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

+0

См. Также http://stackoverflow.com/q/4833116/873282 – koppor

ответ

1

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

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

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

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

+0

Похоже, что URL-адрес поврежден. – Ramis

0

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

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

Это простой макет. Ему нужно много работы. Сделать некоторые исследования

товаром

1

Один способ создать интерфейс для редактирования информации в конкретном 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.

Steven Pemberton из W3C и CWI написал полезное tutorial introduction to XForms; Я поддерживаю list of pointers тому и другим материалам, связанным с XForms, которые также могут быть полезны.

+0

Пожалуйста, старайтесь избегать коротких форм, таких как YMMV при публикации – Dhara

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