2016-12-19 15 views
0

Мы используем XSLTForms и XSLT для отображения страницы. У меня есть экземпляр на странице, значение которого задано как документ.Как обновить значение экземпляра другим документом

<xf:instance id="myDetails"> 
 
     <xsl:copy-of select="$detailDocument" /> 
 
</xf:instance>

Он отлично работает и значение экземпляра установлено правильно. Однако позже мне нужно обновить значение этого экземпляра другим документом. Я пытался что-то подобное, но следует не получилось:

<xf:setvalue ref="instance('myDetails')"><xsl:copy-of select="$updatedDetailDocument" /></xf:setvalue>

Это только делает экземпляр пустым, даже если я знаю updatedDetailDocument не пусто. Имеет ли xf: setvalue даже поддержку экземпляров установки? Или есть другой способ сделать то же самое?

ответ

1

<xf:setvalue> используется для установки текста в атрибуте XML или элементе XML. Чтобы установить дерево или поддерево XML, вам понадобится <xf:insert> action.

Вы не говорите, как вы получаете $updatedDetailDocument, но так как это динамическая, вероятно, нужно получить, что обновленный документ с помощью <xf:submission>, в этом случае вам не нужно будет <xf:insert>, потому что <xf:submission> может непосредственно обновить экземпляр с replace="instance".

+0

Спасибо. Я могу использовать xf: insert, а затем xf: delete, чтобы удалить старый узел. – Crusaderpyro