0

私は奇妙な状況にあります:

XML

...
<item>
    <p><a href="image-01">image X</a>text...</p>
    <p>text...<a href="image-02">image Y</a></p>
    <p>some...<a href="image-02">image y2</a></p>
    <img id="image-02" />
</item>
...

同じ属性 @href (存在する場合) を持つタグを見つけ、最初に追加の属性 (class="xyz" など) を追加する必要があります。
ありがとうござい
ます

4

1 に答える 1

1

使用できます

<xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:key name="by-href" match="*[@href]" use="@href"/>

<xsl:template match="@* | node()">
  <xsl:copy>
    <xsl:apply-templates select="@* , node()"/>
  </xsl:copy>
</xsl:template>

<xsl:template match="*[@href][. is key('by-href', @href)[1]]">
  <xsl:copy>
    <xsl:apply-templates select="@*"/>
    <xsl:attribute name="class" select="'xyz'"/>
    <xsl:apply-templates/>
  </xsl:copy>
</xsl:template>

</xsl:stylesheet>

Saxon 9、AltovaXML、XmlPrime などの XSLT 2.0 プロセッサを使用します。

于 2013-08-30T16:21:06.427 に答える