编写修改XML的Web应用程序的标准方法是什么?

时间:2009-06-12 07:52:42

标签: xml web-applications

我必须用Java编写一个小型Web应用程序,它将XML的内容作为表单显示给用户。然后,用户可以修改表单条目,并将更改保存到XML。

我想知道

  • 编写此类应用程序的标准方法是什么?我的意思是我应该手动编写代码来将XML解析为Java对象,显示在网页上然后将更改重写回XML吗?或者是否有任何标准工具可以自动执行其中一些步骤?

  • 如果多个用户尝试更新相同的XML,如何管理锁定?

顺便说一下,如果它提供了一个简单易用的解决方案,我愿意使用任何语言/框架。

该工具旨在供生产支持工程师用于修改特定于生产的配置XML。

3 个答案:

答案 0 :(得分:1)

永远不要编写自己的XML解析器。

是的,Java(即JSP)具有用于加载和保存XML文件的内置库。

编写代码来制作HTML表单,使用XML元素信息填充它,从客户端返回表单POST,然后将其写回更新的XML文件非常简单,但它会很多工作,特别是如果形式复杂。

锁定是一个问题:网络连接是无状态的。穷人的解决方案:在编辑时将XML文件重命名(例如,1.xml到1.xml.checkedout)。保存后重命名。将带有表单的文件名传递回服务器,以便服务器端代码知道要写入哪个文件并重命名。不利的一面是,放弃网页的用户会将重命名的屠杀留在后面。

在服务器端,PHP,JSP,ASP.NET,Perl和Python都适合这个应用程序。这都是关于你最舒服的工作。

请记住,由于您没有将XML存储在数据库中,因此Web服务器需要 write 访问文字XML文件。

答案 1 :(得分:0)

你看过XFORMS型号了吗?可能有意义

答案 2 :(得分:0)

我们最近在c#中开展了一个类似的项目,但原则应该是一样的。我们在冲突管理方面确实没有相同的问题,因为我们在一个表中对文件进行了版本化,然后在其他人覆盖了他们的数据时为用户提供了合并功能。

当我们决定使用xslt将xml转换为xhtml表单时,问题变得更加容易。根据xml的复杂性(以及结果形式),这可能会相对较快地完成。然后,您可以在一行中执行转换(在大多数语言中)。

使这项工作如此出色的原因是我们可以使用表单元素名称属性来传递我们尝试更新的每个节点的xpath(在xslt中获取它非常简单)。然后,我们将直接引用正在更新的数据。验证用户输入后,您也可以用几行更新xml。

它最终成为了一个非常优雅的解决方案(就像xml,xslt和xquery所设计的那样)。最好的部分是它可以很好地转换为具有相对较好的xml工具的任何语言。此方法还可以非常轻松地向表单添加功能或提供有关数据的备用视图。