Я пытаюсь найти решение xslt для следующей проблемы, которую я имею.Попытка найти следующие две строки в экземпляре экземпляра XBRL
Я хочу найти набор из трех последующих строк, которые разделяют имя узла и атрибут, но имеют разные значения. Первая строка на входе содержит идентификатор, вторая и третья строки содержат значения из исходной системы. Я хочу найти множества, где вторая и третья строки имеют разные значения.
E.g.
<eba7:mi235 contextRef="I-2014-E-dim-x43-x9-x156-x51-x14">78923</eba7:mi235>
<eba7:mi235 contextRef="I-2014-E-dim-x43-x9-x156-x51-x14">1111</eba7:mi235>
<eba7:mi235 contextRef="I-2014-E-dim-x43-x9-x156-x51-x14">2222</eba7:mi235>
Там также могут быть наборы строк только с идентификатором, набор строки с идентификатором и только одну строку со значением из исходной системы или набора строк, где второй и третий ряд имеют такое же значение.
E.g.
<eba7:mi310 contextRef="I-2014-E-dim-x42-x9-x24-x195-x10-x4">78748</eba7:mi310>
<eba7:mi310 contextRef="I-2014-E-dim-x42-x9-x24-x195-x10-x4">0</eba7:mi310>
<eba7:mi310 contextRef="I-2014-E-dim-x42-x9-x25-x195-x10-x4">78804</eba7:mi310>
<eba7:mi310 contextRef="I-2014-E-dim-x42-x9-x25-x195-x10-x4">12345</eba7:mi310>
<eba7:mi310 contextRef="I-2014-E-dim-x42-x9-x25-x195-x10-x4">12345</eba7:mi310>
Этих я не хочу найти в выходе.
Выход я хочу создать это
<eba7:mi235 id="78923" value1="1111" value2="2222" />
Структура ввода такова, что строки всегда упорядоченный, как это. Поэтому я попытался получить доступ к ним с помощью позиции, но это не сработало.
Может ли кто-нибудь указать мне в правильном направлении? Правильно ли используется позиция?
Я приложил файл с входными данными ниже
Спасибо.
Paul.
<?xml version="1.0" encoding="utf-8"?>
<xbrl xml:lang="en" xmlns="http://www.xbrl.org/2003/instance" xmlns:eba7="http://www.eba.europa.eu/xbrl/crr/dict/met" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase">
<link:schemaRef xlink:type="simple" xlink:href="http://www.eba.europa.eu/eu/fr/xbrl/crr/fws/corep/its-2013-02/2014-07-31/mod/corep_con.xsd" />
<context id="I-2014-E">
<entity>
<identifier scheme="http://www.dnb.nl/id">578</identifier>
</entity>
<period>
<instant>2014-12-31</instant>
</period>
</context>
<eba7:mi310 contextRef="I-2014-E-dim-x42-x9-x24-x195-x10-x4">78748</eba7:mi310>
<eba7:mi310 contextRef="I-2014-E-dim-x42-x9-x24-x195-x10-x4">0</eba7:mi310>
<eba7:mi310 contextRef="I-2014-E-dim-x42-x9-x25-x195-x10-x4">78804</eba7:mi310>
<eba7:mi310 contextRef="I-2014-E-dim-x42-x9-x25-x195-x10-x4">12345</eba7:mi310>
<eba7:mi310 contextRef="I-2014-E-dim-x42-x9-x25-x195-x10-x4">12345</eba7:mi310>
<eba7:mi235 contextRef="I-2014-E-dim-x43-x9-x156-x51-x14">78923</eba7:mi235>
<eba7:mi235 contextRef="I-2014-E-dim-x43-x9-x156-x51-x14">1111</eba7:mi235>
<eba7:mi235 contextRef="I-2014-E-dim-x43-x9-x156-x51-x14">2222</eba7:mi235>
</xbrl>
Это вопрос группировки. Пожалуйста, укажите, какую версию XSLT вы используете, - ответы на них разные. - Что, если есть последовательность из 4? –
XSLT 1.0 используется Возможна последовательность из 4: 3 значения для конкретного идентификатора. Я оставил это, чтобы привести пример как можно проще. Я ожидаю, что смогу расширить решение от Lingamurthy CS для этого случая. – Paul
Как я уже сказал в своем ответе, вопрос не слишком четко определен. Еще хуже то, что ваш пример ввода не является корректным и не может быть использован для тестирования. –