使用 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?

绕过/更改“您所做的更改可能无法保存”提示

如何使用 Core Data 有效地保存 UI/主线程中所做的更改?

XSLT 如何组合模板并将现有字段添加到某些元素

是否有任何现成的 xslt 文件可以将 ODF 内容 xml 转换为纯文本?