跳转到内容

XForms/带有插入来源的深层复制

来自维基教科书,开放的书籍,开放的世界

您想从模板中添加一个新的实例或元素。您想对模型中从一个实例到另一个实例的复杂 XML 进行深层复制。

我们将使用 XForms xf:insert 元素,并将 origin 属性设置为源实例。我们将使用 nodeset 属性来指示数据应该被复制到哪里。

[编辑 | 编辑源代码]

加载 XForms 应用程序

源代码

[编辑 | 编辑源代码]
<html
     xmlns="http://www.w3.org/1999/xhtml"
     xmlns:ev="http://www.w3.org/2001/xml-events"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     xmlns:xf="http://www.w3.org/2002/xforms">
     <head>
          <title>Using Origin to do a Deep Copy between instances</title>
          <style type="text/css">
               @namespace xf url("http://www.w3.org/2002/xforms");
               body {font-family:Helvetica, sans-serif}
               #source-repeat {border: blue solid 1px;}
               #destination-repeat {border: green solid 1px;}
          </style>
          <xf:model>
               
               <xf:instance xmlns="" id="source">
                    <data>
                         <a>A1</a>
                         <a>A2</a>
                         <a>A3</a>
                    </data>
               </xf:instance>
               
               <xf:instance xmlns="" id="destination">
                    <data/>
               </xf:instance>
               
          </xf:model>
     </head>
     <body>
          <h1>Example of deep copy using XForms insert origin</h1>
          
          <h3>Source:</h3>
          <xf:repeat id="source-repeat" nodeset="instance('source')/a">
               <xf:output ref="."/>
          </xf:repeat> 
          
          <h3>Destination:</h3>
          <xf:repeat id="destination-repeat" nodeset="instance('destination')/a">
               <xf:output ref="."/>
          </xf:repeat> 
               
          <xf:trigger>
               <xf:label>Copy data from source to destination</xf:label>     
               <xf:action ev:event="DOMActivate">
                        <xf:insert
                             origin="instance('source')"                        
                             nodeset="instance('destination')"/>
               </xf:action>
          </xf:trigger>
          
     </body>
</html>
下一页: 增量模型加载 | 上一页: 动态选择列表
主页: XForms
华夏公益教科书