XSL Определить существование атрибута.

Miky

Guest
XSL Определить существование атрибута.

Как определить (возможно ли) сушествование некоторого атрибута у текущего элемента, исходнова дерева XML?
 

BeGe

Вождь Апачей, блин (c)
Что значит определить ?


Есть ли такой атрибут вообще ?
или Какое его значение ?

На первый вопрос - читай правила xpath.
Второй функции xslt.
 

slach

Новичок
<xsl:template match="tag_name">

<xsl:if test="@attr_name">
аттрибут @attr_name есть
<xsl:value select="@attr_name"/>
</xsl:if>
</xsl:template>
 

cray

Guest
2slach:
Спасибо за постик... а то я почему-то думал, что надо <xsl:if test="[@attr_name]">. Не знал, че ошибку все время выдает... точнее у меня было так
PHP:
<xsl:choose>
      <xsl:when test="[@href]">
            <a href="{@href}"><xsl:value-of select="." /></a>&#160;
      </xsl:when>
      <xsl:otherwise>
            <xsl:value-of select="." />&#160;
      </xsl:otherwise>
</xsl:choose>
 

slach

Новичок
квадратные скобки используются не для того чтобы показать что это аттрибуты, а чтобы сделать "подзапрос", относительно контекста за квадратными скобками...

это называется предикат (если я не ошибаюсь)

т.е. используя //TAG[other_tag='test_value']
ты выбираешь TAG, у которого есть прямой потомок other_tag со значением test_value

я понятно изъясняюсь?
 

cray

Guest
Да, теперь я понял. Впринципе-то предикаты я использую и, как оказалось, даже там, где не надо :)
 
Сверху