#xml #xslt #input #save
#xml #xslt #ввод #Сохранить
Вопрос:
У меня есть XML, и я использую преобразование XSLT для создания выходных данных html. Внутри преобразования я использую ввод
<input type="{@Type}" class="form-control" value="{@Value}"></input>
В моем XML я объявил тип (логическое значение, текст) и значение в качестве атрибутов узла.
<Setting Caption="example" Value="exampleText" Type="text" ></Setting>
Это работает нормально, начальным значением ввода является значение из атрибута узла XML.
Теперь я хочу сохранить все изменения, внесенные пользователем.
Итак, если пользователь изменит значение ‘exampleText’ из поля ввода, как можно обновить мой XML-файл новым значением?
Также у меня есть кнопка «Сохранить», я хочу, чтобы при нажатии на нее сохранялись все изменения.
Ответ №1:
Движки XSLT, встроенные в браузеры, могут генерировать только HTML. Как только HTML сгенерирован, они больше не играют роли в том, как он обрабатывается.
Традиционно пользовательские события (например, ввод данных в форму или нажатие кнопки) обычно обрабатываются кодом Javascript.
Но есть решения получше:
- вы могли бы рассмотреть возможность использования XForms,
- или вы могли бы рассмотреть возможность использования Saxon-JS. Saxon-JS — это XSLT-движок, который запускается в браузере и позволяет обрабатывать пользовательские события с использованием XSLT-кода; ваш XSLT-код для обработки определенного события может сгенерировать новый XML-файл, который вы хотите отправить обратно на сервер. В настоящее время Saxon-JS не имеет встроенной поддержки для вызова HTTP post-запроса, поэтому эта часть все равно должна быть на Javascript, но вы можете легко вызвать функцию JS из Saxon-JS.