Мое требование - преобразовать следующий исходный XML в целевой XML.Не могли бы вы помочь мне с требуемым XSLT?
Исходный XML:
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<property><namevalue name="loccode1">BIN01</namevalue></property>
<property><namevalue name="locdesc1">Description for BIN01</namevalue></property>
<property><namevalue name="loccode2">BIN02</namevalue></property>
<property><namevalue name="locdesc2">Description for BIN02</namevalue></property>
<property><namevalue name="loccode3">BIN03</namevalue></property>
<property><namevalue name="locdesc3">Description for BIN03</namevalue></property>
</catalog>
Целевой XML:
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<property>
<namevalue name="location1">BIN01#Description for BIN01</namevalue>
</property>
<property>
<namevalue name="location2">BIN02#Description for BIN02</namevalue>
</property>
<property>
<namevalue name="location3">BIN03#Description for BIN03</namevalue>
</property>
</catalog>
Требуется объединить значения namevalue
узлы с атрибутами loccode<seq>
и locdesc<seq>
.Не могли бы вы помочь мне добиться этого?
Следующий фрагмент
<xsl:apply-templates select="catalog/property/namevalue[@name='loccode2'] | catalog/property/namevalue[@name='locdesc2']" />
ожидает от меня явного указания имени атрибута, и вывод будет BIN01Description for BIN01
(я даже не могу добавитьразделитель).Есть ли способ динамической передачи атрибута (например, loccode<seq>
или locdesc<seq>
) и добавления разделителя между скопированным текстом.