Форматирование дат с использованием XPath - PullRequest
3 голосов
/ 25 августа 2011

У меня есть следующие выражения xpath ...

//ns:response[1]/ns:return[1]/legs[1]/startDate[1] (Value 01/01/2011)
//ns:response[1]/ns:return[1]/legs[1]/startTime[1] (Value 12:13)

Мне нужно отформатировать и объединить эти значения во что-то вроде этого

2011-08-25T17:35:00

Возможно ли это сделать с помощью функций xpath?Был бы признателен за пример.

Формат даты во входных данных: дд / мм / гггг.

Ответы [ 3 ]

4 голосов
/ 25 августа 2011

Как подсказывает @Michael Key (+1), три substring() и один concat() - это все, что вам нужно. Посмотрите на этот пример XSLT, используя XPath, который вы ищете (используйте переменные, чтобы сделать выражение читабельным):

<xsl:template match="/">
    <xsl:variable name="sD" select="'01/01/2011'"/>
    <xsl:variable name="sT" select="'12:13'"/>
    <xsl:value-of select="concat(
        substring($sD,7),'-',
        substring($sD,4,2),'-',
        substring($sD,1,2),'T',
        $sT,':00')"/>
</xsl:template>
3 голосов
/ 25 августа 2011

Было бы полезно узнать, является ли ваш 01/01/2011 д / м / г или м / д / г. В любом случае, это всего лишь вопрос вызова трижды substring () для извлечения частей данных, а затем concat () для получения результата.

0 голосов
/ 25 августа 2011

Посмотрите на XPath 1.0 функции: concat, substring, substring-before, substring-after.

...