Учитывая этот XML, есть ли xpath, который выдаст мне значения 'test' и 'name'?

StackOverflow https://stackoverflow.com/questions/97474

  •  01-07-2019
  •  | 
  •  

Вопрос

Мне нужно получить значение атрибута 'test' в теге xsl:when и атрибута 'name' в теге xsl:call-template.Этот xpath подводит меня довольно близко:

..../xsl:template/xsl:choose/xsl:when

Но это просто возвращает элементы 'when', а не точные значения атрибутов, которые мне нужны.

Вот фрагмент моего XML-файла:

<xsl:template match="field">
    <xsl:choose>
    <xsl:when test="@name='First Name'">
        <xsl:call-template name="handleColumn_1" /> 
    </xsl:when>
</xsl:choose>
Это было полезно?

Решение

Стив Купер ответил на первую часть.Для второй части вы можете использовать:

.../xsl:template/xsl:choose/xsl:when[@test="@name='First Name'"]/xsl:call-template/@name

Который будет конкретно соответствовать xsl:when в приведенном выше фрагменте.Если вы хотите, чтобы он соответствовал общему, то вы можете использовать:

.../xsl:template/xsl:choose/xsl:when/xsl:call-template/@name

Другие советы

ты хочешь .../xsl:template/xsl:choose/xsl:when/@test

Если вы действительно хотите получить значение 'First Name' из атрибута test, вам не повезло - содержимое внутри атрибута - это просто строка, а не фрагмент xml, поэтому вы не можете использовать xpath для нее.Если вам нужно получить это, вы должны использовать манипулирование строками (например, подстрокой), чтобы получить нужное содержимое

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top