【发布时间】:2015-06-03 16:19:29
【问题描述】:
我的 XML 文件中有以下内容:
<Hits>
<Hit status="good">
<batter ref="4">Sample Text 1</batter>
<contexts ref="5">Sample Text 2</contexts>
</Hit>
<Hit status="bad">
<batter ref="7">Sample Text 3</batter>
<contexts ref="" />
</Hit>
</Hits>
我正在尝试生成一个 XSL,它将删除任何元素中的 ref 属性,或者只是将 ref 属性的值替换为像 "XXX" 这样的硬编码。我希望找到并删除 ref 属性作为我的第一个选项。
下面是我正在使用的 XSL,但它实际上并没有删除有问题的属性:
<xsl:template match="Hit">
<xsl:copy-of select="." />
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="/Hit/batter/@ref">
<xsl:attribute name="ref">
<xsl:value-of select="$mycolor"/>
</xsl:attribute>
</xsl:template>
【问题讨论】:
-
欢迎来到 SO!究竟什么不起作用?
-
@J0e3gan - 我原来的 xsl 没有替换属性 ref 值。 michael.hor257k 提供的解决方案有效,但我没有包含 XML 的所有元素。
示例文本 A示例文本 B 示例文本 C 名称 颜色 示例文本 1 示例文本 2 示例文本 3