С учетом следующего документа:
<foo>
<object>
<property name="value"> <!-- MATCH THIS NODE -->
<string>alpha</string>
</property>
<property name="name">
<string>$A$</string>
</property>
</object>
<object>
<property name="value">
<string>bravo</string>
</property>
<property name="name">
<string>$B$</string>
</property>
</object>
</foo>
и таблица стилей, основанная на преобразовании идентичности:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!-- HAVING PROBLEMS HERE -->
<xsl:template match="property[@name='value'][../property[@name='name']/string='$A$']">
Replace with text!
</xsl:template>
</xsl:stylesheet>
Какие предикаты я бы использовал, если я хочу сопоставить узел, указанный в исходном документе, когда мне нужно отключить содержимое элемента свойства / строки sibling (строка $ A $)?