Получить текущую метку времени в xsl и передать ее в атрибуте xml

0

Мой проект находится на php. И мне нужно создать cXML файл с помощью XSL-шаблона.

Я очень новичок в XSL, и до сих пор у меня есть googled и создает XSL-шаблон, который выводит cXML, мой код ниже.

<?xml version="1.0" encoding="ISO-8859-1"?>
<files>
<file filename="Order_%Y%%m%%d%%h%%i%%s%.xml">
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:date="http://exslt.org/dates-and-times" extension-element-prefixes="date">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:for-each select="orders/order">
<xsl:variable name="created_at_timestamp" select="created_at_timestamp" />
<cXML lang="en-US" payloadID="{created_at_timestamp}" timestamp="">
<Header><From><Credential domain="NetworkID"><Identity>Enterprises</Identity></Credential></From>
<To><Credential domain="NetworkID"><Identity>xxx</Identity></Credential></To>
<Sender><Credential domain="NetworkID"><Identity>xxx Enterprises</Identity>
</Credential><UserAgent>Enterprises</UserAgent></Sender></Header>
</cXML>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
</file>
</files>

Теперь мне нужно знать, как выводить текущую временную метку в timestamp атрибута cXML, чтобы быть конкретным.

<cXML lang="en-US" payloadID="{created_at_timestamp}" timestamp="TIME_STAMP_HERE">

Я пробовал много методов с помощью googling, все выводит только обычный текст, если я использую его в "". Для EX: если я использую функцию current-dateTime(), он выводит как это.

<cXML lang="en-US" payloadID="{created_at_timestamp}" timestamp="current-dateTime()">

может ли кто-нибудь помочь мне вывести текущую временную метку внутри моего атрибута cXML? другие параметры работают хорошо.

EDIT Ожидаемый результат: <cXML lang="en-US" payloadID="xxx" timestamp="2014-11-07T12:00:13-04:00">

благодаря

  • 0
    Не могли бы вы добавить фактический результат, который вы ожидаете увидеть с помощью элемента cXML?
  • 0
    @ michael.hor257k Я обновил свой вопрос. пожалуйста, проверь это.
Теги:
xslt

1 ответ

2
Лучший ответ

В XSLT 1.0 нет функции current-dateTime(), которая, как я полагаю, использует PHP. Либо передайте текущее время в качестве параметра в таблицу стилей во время выполнения, либо используйте функцию расширения даты: дата-время(), которую поддерживает процессор libxslt:

<cXML lang="en-US" payloadID="xxx" timestamp="{date:date-time()}">
  • 0
    Спасибо за ваш быстрый ответ. Это сработало.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню