【问题标题】:XForms data model can not be saved in XML fileXForms 数据模型不能保存在 XML 文件中
【发布时间】:2013-03-06 19:23:27
【问题描述】:

我有以下 XForms 代码:

<?xml-stylesheet href="./xsltforms.xsl" type="text/xsl"?>
<?xsltforms-options debug="yes"?>
<html
   xmlns="http://www.w3.org/1999/xhtml"
   xmlns:xf="http://www.w3.org/2002/xforms"
   xmlns:ev="http://www.w3.org/2001/xml-events">
   <head>
      <title>XForms Submit Example</title>
      <xf:model id="MyModel">
                <xf:instance src="./Model.xml"/>
                <xf:bind id="FirstName" nodeset="/MyData/FirstName"/>
                <xf:submission id="save" method="put" action="./myData.xml" replace="none" />
                <xf:submission id="loadDoc" action="./myData.xml" replace="instance" method="get" />
      </xf:model>
   </head>
   <body>
                <xf:input ref="FirstName" incremental="true">
            <xf:label>Please enter your first name: </xf:label>
         </xf:input>
                <br/>
                <br/>

                Output First Name: <xf:output ref="FirstName" />

                <br/>
                <br/>

                <xf:submit submission="save">
         <xf:label>Save</xf:label>
                </xf:submit>

                <br/>
                <br/>

                <xf:submit submission="loadDoc">
         <xf:label>Load</xf:label>
                </xf:submit>

   </body>
</html>

此表单包含一个文本框字段和两个按钮 saveload,以及对文件 Model.xml 的 1 个依赖项,即:

<?xml version="1.0" encoding="UTF-8"?>
<MyData>
                <FirstName>John</FirstName>
                <Data2>Two</Data2>
                <Data3>Three</Data3>
</MyData>

问题是:当我在文本框中输入一些数据时,按保存按钮,模型应该保存到myData.xml。该文件存在磁盘上,不是只读的

实际上什么也没发生,文件的数据也不会更新(顺便说一下,加载按钮可以正常工作)。

这种行为的原因是什么以及如何解决这个问题并将输入的数据保存到外部文件?

【问题讨论】:

    标签: xhtml xforms xsltforms


    【解决方案1】:

    您是否已经尝试在操作属性中添加“file://”?

    -阿兰

    【讨论】:

    • 我更喜欢使用相对路径来避免 URI 中的错误,比如我可以指定 file:///d:/MyData.xml 或 file:/d:/MyData.xml 等指定的文件名字是正确的。 XForms 知道该文件存在。如果我指定 MyData_.xml 之类的内容,我将在 XSLTForms 插件的调试模式下收到消息“系统无法找到指定的资源”。很奇怪,文件应该存在,并且不会被创建,不是吗?
    • 写入文件与将数据发送到 Web 服务器完全不同:在浏览器中,需要 Java 小程序!您正在编写离线应用程序吗?
    • 好的,我会尽快看看这个。
    • 所以,我现在有一个针对 Firefox 的修复程序,但 Chrome 不想应用本地 XSLT 样式表,并且 Internet Explorer 原生 XmlHttpRequest 不允许读取本地文件... 仅限 Firefox为你修好???
    猜你喜欢
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2021-10-05
    • 1970-01-01
    • 2017-11-18
    相关资源
    最近更新 更多