XSLT, если string-length () не работает - PullRequest
0 голосов
/ 27 октября 2011

Я пытаюсь использовать длину строки, чтобы определить, является ли она датой или датой и временем.Дата будет иметь десять символов, а дата-время - 24. Если у нее нет времени, календарь должен интерпретировать ее как событие на весь день.

Итак, это утверждение if.use:

<xsl:variable name="alextest" select="string-length(gd:when/@startTime)" />
allDay:     <xsl:if test="$alextest&lt;12"> true </xsl:if>

Однако оператор if всегда не может вывести true, даже когда условие выполнено.

Я тестировал логику различными способами, например, выводил значениевыражение

<xsl:value-of select="$alextest&lt;12"/>',

, которое разрешается как true, поэтому сравнение работает.Я также попробовал это, и это работает, что, кажется, показывает, что структура правильна:

allDay:     <xsl:if test="0&lt;12"> true </xsl:if>,

Что я делаю не так?

Большое спасибо

Алекс

1 Ответ

1 голос
/ 27 октября 2011

&lt; ниже чем. 13 < 12 невозможно оценить как истинное. Я думаю, вам понадобится либо <= в форме &lt;=, либо > в форме &gt;.

РЕДАКТИРОВАТЬ: следующее работает, как и ожидалось, поэтому все еще должно быть что-то за пределами кода, который вы показали, или, возможно, значения должны быть скорректированы. Убедитесь, что выражение select для переменной действительно разрешает что-то.

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <el1>123456789101112</el1>
    <el2>123456</el2>
    <el3>1234567891011121314</el3>
    <el4></el4>
</root>

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
    <xsl:output method="text"/>
    <xsl:template match="/*">
        <xsl:for-each select="*">
            <xsl:variable name="test" select="string-length(.)" />
            <xsl:if test="$test &lt; 12"><xsl:value-of select="local-name(.)"/>: shorter than 12&#10;</xsl:if>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...