2011-03-17 63 views
1

我有以下數據實例。xforms中的多個元素的連續編號

<xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:xxforms="http://orbeon.org/oxf/xml/xforms" 
xmlns:exforms="http://www.exforms.org/exf/1-0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<xhtml:head> 
    <xforms:instance id="instanceData"> 
     <form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
      <fruits> 
       <fruit> 
        <fruit-name>Mango</fruit-name> 
       </fruit> 
       <fruit> 
        <fruit-name>Apple</fruit-name> 
       </fruit> 
       <fruit> 
        <fruit-name>Banana</fruit-name> 
       </fruit> 
      </fruits> 
      <all-fruits></all-fruits> 
     </form> 
    </xforms:instance> 
</xhtml:head> 
</xhtml:html> 

我想在所有的水果中的所有水果的名稱標籤如下

<all-fruits>Mango Apple Banana</all-fruits> 

請建議一些方法來達到同樣的。使用xxforms進行嘗試時,它不適用於我:迭代和concat。

回答

2

下面的伎倆:

<xforms:bind nodeset="all-fruits" 
      calculate="string-join(../fruits/fruit/fruit-name, ' ')"/> 

這裏是完整的源代碼,以便您可以運行它:

<xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      xmlns:xxforms="http://orbeon.org/oxf/xml/xforms" 
      xmlns:exforms="http://www.exforms.org/exf/1-0" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:xforms="http://www.w3.org/2002/xforms"> 
    <xhtml:head> 
     <xforms:model> 
      <xforms:instance id="instanceData"> 
       <form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
        <fruits> 
         <fruit> 
          <fruit-name>Mango</fruit-name> 
         </fruit> 
         <fruit> 
          <fruit-name>Apple</fruit-name> 
         </fruit> 
         <fruit> 
          <fruit-name>Banana</fruit-name> 
         </fruit> 
        </fruits> 
        <all-fruits></all-fruits> 
       </form> 
      </xforms:instance> 
      <xforms:bind nodeset="all-fruits" calculate="string-join(../fruits/fruit/fruit-name, ' ')"/> 
     </xforms:model> 
    </xhtml:head> 
    <xhtml:body/> 
</xhtml:html>