使用 XPath 在 XForms 中实现炫酷功能
http://tech.ddvip.com 2007年10月24日 社区交流
内容摘要:如果您使用过 XForms,则肯定熟悉 XPath;构建 XForms 表单时必须使用它!但使用 XPath 您所能做的不仅仅限于选择节点在页面上显示。本文将向您展示 XPath 和 XForms 如何交互以使您能够创建从未想到过的功能,比如用一个简单步骤显示惟一值列表,或结合使用 XPath 和界面元素(比如单选按钮或下拉列表)控制显示的数据,而不仅仅是提交的数据。
如果您曾经在开发中使用过 XML ,那么您可能对 XPath 有所了解,它是一种表达式语言,让您能够选择 XML 文档的一些部分。如果您使用过 XForms,则肯定熟悉 XPath;构建 XForms 表单时必须使用它!但使用 XPath 您所能做的不仅仅限于选择节点在页面上显示。本文将向您展示 XPath 和 XForms 如何交互以使您能够创建从未想到过的功能,比如用一个简单步骤显示惟一值列表,或结合使用 XPath 和界面元素(比如单选按钮或下拉列表)控制显示的数据,而不仅仅是提交的数据。本文假定您熟悉 XML、XForms 和 XPath 的基础知识。如果您需要重温一下这些内容
任务
在本文中,您将创建一个 report-editing 表单,并使用 XPath 在表单中实现一些炫酷功能。表单中将完成如下功能:
使用 XPath 函数产生的结果自动填充节点
使用单选按钮创建一个 master-detail 表单
只显示列表中的惟一项
根据多个条件筛选结果
使 XPath 筛选器条件可选
该表单与图 1 类似。
图 1. 最终表单

我们从创建基本表单开始。
基本表单
首先创建一个表单,要求能够在其中编辑报告的标题和主体(见清单 1)。
清单 1. 基本表单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/D/tdxhtml1-strict.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xforms="http://www.w3.org/2002/xforms"
xmlns:ev="http://www.w3.org/2001/xml-events"
>
<head>
<title>Report Entry Editor</title>
<link rel="stylesheet" href="style.css" type="text/css"/>
<xforms:model >
<xforms:instance id="editor" >
<entry xmlns="">
<id />
<status />
<title />
<body />
</entry>
</xforms:instance>
<xforms:bind nodeset="instance('editor')/title" id="titlebind"/>
<xforms:bind nodeset="instance('editor')/body" id="bodybind"/>
<!-- Dummy submission; we're just dealing with the client -->
<xforms:submission id="editsubmission" action="savechanges.php"
method="post"/>
</xforms:model>
</head>
<body>
<h2>Editor</h2>
<xforms:input bind="titlebind" >
<xforms:label><b>Title: </b></xforms:label>
</xforms:input><br/>
<xforms:textarea bind="bodybind">
<xforms:label><b>Body: </b></xforms:label>
</xforms:textarea><br />
<xforms:submit submission="editsubmission">
<xforms:label>Save changes</xforms:label>
</xforms:submit>
</body>
</html>
来源:ibm 作者:Nicholas Chase 责编:豆豆技术应用