Разбор XML-атрибутов с использованием XSLT - PullRequest
0 голосов
/ 22 октября 2018

Мне нужен некоторый XSLT, чтобы вернуть какой-то вывод (что угодно) на основе одного из атрибутов в исходном XML.Этот атрибут состоит из нескольких пар имя-значение, поэтому мне нужно иметь возможность анализировать весь текст, извлекать определенные значения и затем сравнивать их.

Например, у меня может быть какой-то XML, который выглядиткак это:

<Element Where="Time=3,Successful=N"></Element>

и я хочу вернуть просто что-то, чтобы сказать, что это заняло слишком много времени, если значение «Время» больше 10, или что-то, чтобы сказать, что это не удалось, если значение «Успешно»"is" N ".

Второй аспект, которого мне удалось достичь с помощью функции" contains ":

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/Element">
        <xsl:if test="contains(@Where, 'Successful=N')">
            Message Failed
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>

, но я не могу понять, как разобрать"Время », а затем сравните это для запуска выхода, если значение> 10.

1 Ответ

0 голосов
/ 22 октября 2018

Попробовать так?

<xsl:variable name="time" select="substring-before(substring-after(@Where, 'Time='), ',')" />
<xsl:if test="$time &gt; 10">
    <xsl:text>Too Long</xsl:text>
</xsl:if>

Обратите внимание, что это предполагает, что после значения Time всегда будет запятая.Если нет, добавьте его самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...