【问题标题】:How to edit a xml file via browser with eXist-db and xsltForms如何使用 eXist-db 和 xsltForms 通过浏览器编辑 xml 文件
【发布时间】:2018-02-28 17:41:10
【问题描述】:

我对 eXist-db 比较陌生。我已经构建了一个在浏览器中显示 XML 文档的应用程序,并实现了基本搜索。

我有一个用作数据库的 .xml 文件;它包含以下记录:

<person xml:id="pe0001">
    <persName>
        <surname>Name</surname>
        <forename>Surname</forename>
    </persName>
</person>

我希望能够通过浏览器编辑此文件;例如,编辑一个人的姓名,或添加一条新记录。

我浏览了 eXist-db 文档,查看了示例,阅读了 wikibooks - 我还没有找到我需要的东西。我只需要一个文本区域,有人可以在其中输入/编辑一些文本,这些文本将被推送(我猜是使用 PUT)到 .xml 文件中。

XSLTForms 是我的最佳选择吗?谁能给我一些方向/建议/例子?谢谢!

【问题讨论】:

    标签: xml xslt xforms exist-db xsltforms


    【解决方案1】:

    根据用例,您可能想看看默认文档应用程序如何让用户打开(并运行)eXide 中的示例(使用 loadsource.js)。

    对于简单的 xml 编辑,eXide 功能强大。

    【讨论】:

      【解决方案2】:

      感谢您的反对 :) 。无论如何,我已经创建了一个 .xq 文件,它获取我想要编辑的节点的 id

      let $id := request:get-parameter("id", "")
      

      然后返回这个html代码:

           <xf:model>
              <xf:instance id="data-instance" src="my.xml" xmlns="http://www.tei-c.org/ns/1.0" />
              <xf:submission id="read-from-file" method="get"
                  action="my.xml" replace="instance" instance="data-instance" />
              <xf:submission id="save-to-file" method="put"
                  action="my.xml" replace="instance" instance="data-instance" />
          </xf:model>
      

      正文

           <xf:input xmlns="" ref="//tei:person[@xml:id='{$id}']/tei:persName/tei:surname">
              <xf:label>Surname</xf:label>
          </xf:input>
           <xf:input xmlns="" ref="//tei:person[@xml:id='{$id}']/tei:persName/tei:forename">
              <xf:label>Name</xf:label>
          </xf:input>
      

      编辑文本后,用户通过以下按钮提交:

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

      【讨论】:

        【解决方案3】:

        我认为对于像您作为示例显示的相对简单的记录,好的 ole HTML 表单将是最简单的解决方案,它会在 eXist-db 端触发一个 XQuery 脚本来实际更新数据。例如,XForms 几乎没有什么好处,而且肯定会涉及到一个陡峭的学习曲线。

        【讨论】:

          猜你喜欢
          • 2021-08-10
          • 2017-01-04
          • 2017-03-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-16
          • 2012-02-23
          • 1970-01-01
          相关资源
          最近更新 更多