我正在尝试使用XSL匹配并更改以下XML中方面名称 x 的 displayHeight 属性的值,但以下XSL模板会更改所有displayHeight值。我需要以下模板来匹配仅在方面名称为x的情况下的displayHeight属性。
<xsl:template match="@value[parent::property[@name='displayHeight']]">
<xsl:attribute name="value">
<xsl:value-of select="'Value Has Been Changed By XSL'"/>
</xsl:attribute>
</xsl:template>
XML来源
<?xml version="1.0" encoding="utf-8"?>
<a>
<b>
<aspect name="x">
<properties>
<property name="displayHeight" value="600"/>
<property name="displayWidth" value="800"/>
</properties>
</aspect>
<aspect name="y">
<properties>
<property name="displayHeight" value="1280"/>
<property name="displayWidth" value="720"/>
</properties>
</aspect>
</b>
</a>
答案 0 :(得分:2)
使用
<xsl:template match="aspect[@name = 'x']/properties/property[@name = 'displayHeight']/@value">
<xsl:attribute name="value">
<xsl:value-of select="'Value Has Been Changed By XSL'"/>
</xsl:attribute>
</xsl:template>