Извините, если это повторяется, но я изо всех сил пытаюсь решить это. У меня есть переменная xml. У меня есть переменная xsl, которая имеет XML как это:
<root>
<data>
<GroupItems>
<row id="30" class="A100"/>
<row id="50" class="B100"/>
<row id="100" class="A100"/>
<row id="20" class="C100"/>
</GroupItems>
</data>
</root>
Я должен заменить значение "id" из предыдущего узла-брата на основе значения "class". Дубликат предыдущего класса = "A100" должен быть удален, но значение "id" должно быть скопировано в первый узел вхождения. В этом случае требуется вывод:
<root>
<data>
<GroupItems>
<row id="100" class="A100"/>
<row id="50" class="B100"/>
<row id="20" class="C100"/>
</GroupItems>
</data>
</root>
Приведенный ниже код удаляет дубликаты из строки, но мне нужно заменить значение id (id = "100").
<xsl:for-each select="CSharp:NodeList($RawInstruction1)//GroupItems/row[(@class = preceding-sibling::row/@class)]">