разрешить атрибут с некоторым значением, но запретить все остальные - PullRequest
0 голосов
/ 06 января 2012

В моем xslt я хочу сохранить все атрибуты класса, которые имеют class = "myName", но удалить все остальные атрибуты класса на любом узле.

Может кто-нибудь помочь мне с этим.Спасибо

Ответы [ 2 ]

1 голос
/ 06 января 2012

Если у вас нет других шаблонов, соответствующих элементам с @class, это будет работать:

<xsl:template match="@class[.!='myName']"/>
1 голос
/ 06 января 2012

Это может быть достигнуто простым переопределением преобразования идентификаторов и добавлением шаблона для игнорирования атрибутов class , которые не имеют правильного значения

Итак, учитывая следующее XSLT

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="@class[. != 'myName']" />
</xsl:stylesheet>

Применительно к следующему XML

<a class="remove">
    <b class="myName">Test</b>
</a>

Выводится следующее

<a>
    <b class="myName">Test</b>
</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...