使用 XSLT 转换和输入,将用户所做的任何更改保存到初始 XML
Posted
技术标签:
【中文标题】使用 XSLT 转换和输入,将用户所做的任何更改保存到初始 XML【英文标题】:Using XSLT transformation and input, save any changes made by user to initial XML 【发布时间】:2016-10-21 08:49:00 【问题描述】:我有一个 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 发布请求的内置支持,因此该部分仍需要使用 Javascript,但您可以轻松地从 Saxon-JS 调用 JS 函数。【讨论】:
以上是关于使用 XSLT 转换和输入,将用户所做的任何更改保存到初始 XML的主要内容,如果未能解决你的问题,请参考以下文章
A-frame:如何将使用 3d 小部件所做的检查器更改保存到剪贴板
C# 问题:如何将在 DataGridView 中所做的更改保存回使用的 DataTable?