【发布时间】:2012-07-05 07:01:38
【问题描述】:
我找不到将重复节点值复制到另一个重复节点的好方法。在通用编程语言中,我的意思是将一个数组的内容复制到另一个数组。
<xforms:instance id="main-instance">
<contacts>
<contact>
<contact-id>111</contact-id>
<contact-name></contact-name>
<contact-location></contact-location>
</contact>
<contact>
<contact-id>222</contact-id>
<contact-name></contact-name>
<contact-location></contact-location>
</contact>
<contact>
<contact-id>333</contact-id>
<contact-name></contact-name>
<contact-location></contact-location>
</contact>
</contacts>
<alternate-contacts>
<contact>
<alt-contact-id></alt-contact-id>
<control-id></control-id>
<control-rules></control-rules>
<tranmission-method></tranmission-method>
</contact>
<contact>
<alt-contact-id></alt-contact-id>
<control-id></control-id>
<control-rules></control-rules>
<tranmission-method></tranmission-method>
</contact>
<contact>
<alt-contact-id></alt-contact-id>
<control-id></control-id>
<control-rules></control-rules>
<tranmission-method></tranmission-method>
</contact>
</alternate-contacts>
</xforms:instance>
当一个复选框被选中时(启动操作的事件),我应该将第一个 contact-id 值复制到第一个 alt-contact-id 等等。
<xforms:action ev:event="xforms-value-changed">
//TO DO here
</xforms:action>
请提供你的想法
编辑:所以当复选框被选中时,<alternate-contacts> 节点应该是这样的
<alternate-contacts>
<contact>
<alt-contact-id>111</alt-contact-id>
<control-id></control-id>
<control-rules></control-rules>
<tranmission-method></tranmission-method>
</contact>
<contact>
<alt-contact-id>222</alt-contact-id>
<control-id></control-id>
<control-rules></control-rules>
<tranmission-method></tranmission-method>
</contact>
<contact>
<alt-contact-id>333</alt-contact-id>
<control-id></control-id>
<control-rules></control-rules>
<tranmission-method></tranmission-method>
</contact>
</alternate-contacts>
【问题讨论】:
-
能否请您编辑问题并提供所需的确切结果?我怀疑使用 XSLT 这将是微不足道的。您会考虑 XSLT 解决方案吗?
-
@Dimitre:抱歉,我最初的 xml 节点名称错误,我现在更正了问题。谢谢
-
@DimitreNovaatchev:我不确定是否可以在 xforms 中使用 XSLT 解决方案
-
Kaipa M Sarma:好像可以用:copia.ogbuji.net/files/presentations/xslt-xforms.xhtml