2016-03-23 2 views
0

Отрывок XML:Могу ли я использовать имя и совпадение с шаблоном XSL?

<Time StartTime12="7:33" StartTime24="19:33" EndTime12="7:41" EndTime24="19:41">8 நிமி.</Time> 

Отрывок XSL (шаблон):

<xsl:template match="Time"> 
    <td class="cellTime"> 
     <xsl:value-of select="@EndTime24"/> 
    </td> 
    </xsl:template> 

Вызывается с помощью:

<xsl:apply-templates select="Time"/> 

Я поставил отображение времени окончания в метод шаблона так что я мог бы легко изменить его на EndTime12. Тогда мне нужно только отредактировать один бит, чтобы изменить его с 24 часов до 12 часов.

Однако мой Время Объект охватывает два раза, как вы можете видеть. На данный момент это не проблема, потому что все, что я хочу сделать, это показать время окончания. Но если я хочу показать время начала отчета в другой ячейке .... вопрос.

То, что я попытался было:

<xsl:template name="EndTime" match="Time"> 
    <td class="cellTime"> 
     <xsl:value-of select="@EndTime24"/> 
    </td> 
    </xsl:template> 

Не работает. Каким будет правильный способ иметь два метода, оба работают над объектом , но один используется для отображения атрибута времени начала, а другой для отображения времени окончания атрибут?

спасибо.

+1

Ваш вопрос не ясно, потому что ему не хватает контекста. В общем случае, чтобы два шаблона соответствовали одному и тому же узлу (в разных контекстах), вы должны использовать * режим *. –

+0

Контекст - это расписание, которое покажет время начала, время окончания, описание элемента и имя человека. Что такое ** режим **? –

+1

"* Контекст ... *" Это не означает многого без [mcve]. - Режим повтора, см. Https://www.w3.org/TR/xslt/#modes –

ответ

0

Было доведено до моего сведения, что мне необходимо использовать функцию .

<!--Display the end time (using 24 hour format)--> 
    <xsl:template match="Time" mode="End"> 
    <td class="cellTime"> 
     <xsl:value-of select="@EndTime24"/> 
    </td> 
    </xsl:template> 

    <!--Display the start time (using 24 hour format)--> 
    <xsl:template match="Time" mode="Start"> 
    <td class="cellTime"> 
     <xsl:value-of select="@StartTime24"/> 
    </td> 
    </xsl:template> 

Затем вызовите его:

<xsl:apply-templates match="Time" mode="Start"/> 
<xsl:apply-templates match="Time" mode="End"/> 
Смежные вопросы