Я не понимаю, почему мой элементный контент не копируется?XSL: невозможно получить (скопировать) содержимое элемента?
т.е. мой XML текущий результат выглядит следующим образом
<root>
<foo>some content</foo>
<set>
<set-element>
<set-key>some-key</set-key>
<set-val/>
</set-element>
</set>
</root>
Так идея заключается в том, что я хочу, чтобы скопировать, Что в элементе в элементе. Ожидаемый результат должен быть
<root>
<foo>some content</foo>
<set>
<set-element>
<set-key>some-key</set-key>
<set-val>some content</set-val>
</set-element>
</set>
</root>
Мой шаблон XSL выглядит следующим образом
<axsl:template match="set">
<axsl:copy>
<axsl:apply-templates select="@*|node()"/>
<set-element>
<set-key>some-key</set-key>
<set-val><axsl:value-of select="foo"/></set-val>
</set-element>
</axsl:copy>
</axsl:template>
Я пробовал много вещей вкл:
<value><axsl:value-of select="root/foo"/></value>
<value><axsl:value-of select="root/foo/text()"/></value>
<value><axsl:value-of select="foo/text()"/></value>
<value><axsl:value-of select="foo/*"/></value>
Как я пытался сохранить, Что ИНТ в обув элемент как параметр, а затем использовать этот параметр в значении: но все равно не удастся Может ли кто-нибудь увидеть проблему с моим шаблоном?
EDIT:
Что делать, если у меня есть несколько наборов-элементов в моем наборе, т.е.
<root>
<foo>some content</foo>
<set>
<set-element>
<set-key>some-key</set-key>
<set-val>some content</set-val>
</set-element>
<set-element>
<set-key>some-key-2</set-key>
<set-val>some content-2</set-val>
</set-element>
<set-element>
<set-key>some-key-3</set-key>
<set-val/>
</set-element>
</set>
</root>
И я хочу, чтобы добавить <foo>
содержание к этому элементу 3 ?? Насколько я понимаю, для этого потребуется <xsl:template match=value>
, чтобы иметь некоторый параметр, который укажет, какое значение изменить?
Как вы решаете, когда установить 'set-val' в содержимое' foo', то есть какое именно условие? Мое решение отлично работает, если вы хотите сделать это для элементов _all_ 'set-val'. –