Я хотел бы получить изменение значения атрибута и заменить подстроку элемента с XSL.XSL: Как заменить значение атрибута string AND изменить значение
XML
<...>
<communication type="telephone">123 456 789 </communication>
<communication type="telephone">789 (EXT)</communication>
<communication type="telephone">123 456 789 </communication>
</...>
должен быть
<...>
<communication type="telephone">123 456 789 </communication>
<communication type="ext">789</communication>
<communication type="telephone">123 456 789 </communication>
</...>
XSL (2,0)
<xsl:template match="communication[@type='telephone'][contains(text(),'(EXT)')]">
<xsl:copy>
<xsl:value-of select="replace(., '(EXT)', '')"/>
<xsl:attribute name="extension">true</xsl:attribute>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
Saxxon заявляет «узел атрибута не может быть Creat ed после дочернего элемента содержащего элемента «
Я не смог изменить значение типа атрибута, поэтому я создал новый атрибут. Но даже с этим обходным решением я понятия не имею, как сделать оба требования (добавить атрибут И удалить подстроку) для работы.
Любая идея, решающая это, высоко ценится!
Ваше название говорит «* изменение значения атрибута *» и ваш вывод показывает, что вы хотите изменить значение 'type' атрибут от «телефона» до «ext». Но ваш код добавляет новый атрибут 'extension'. Что правильно? –
Извините за это. Я хотел добавить еще один атрибут «расширение» с тем же значением. – user1491184