2015-03-09 3 views
-1

эта проблема Внутри одного файла XML я мог бы случиться, чтобы иметь один или несколько запросов тег, как следующее:XSLT Проблема Проблема

<notification> 
    <data> 
     <admin originator="" event_time="2015-02-28T02:26:42+02:00"> 
      <input> 
       <request_set tx_id="Y2xfMDFfMDE6LWFjODQ2MTQ6Y2E3Mjo1NGVmYjA3NjoxNTE3ODA=#YWM4NDYxNDpjYTcyOjU0ZWZiMDc2OjE1MTc5Ng==" tx_timeout="2015-02-28T00:36:51.824Z" tx_command="start"> 
        <request report=""> 
         <update> 
          <account_data id="2005637" parent="3615732" Status="2" instance="1"> 
           <info> 
            <additional languageid="ARA" nwop="WMP" expdat="2015-08-17T00:00:00+02:00" exptyp="Deactivate" status="2" as="ACT/STD" dyn="ch=US,gn=,ct=1,enc=true,tp=TP_STUDENTS"/> 
           </info> 

          </account_data> 
         </update> 
        </request> 
        <request report=""> 
         <update> 
          <account_data id="3615734" parent="3615732" Status="5" instance="1"> 
           <info> 
            <additional languageid="ARA" nwop="WMP" status="5" as="PAS/SUSP" dyn="ch=US,gn=,ct=1,enc=true,tp=TP_SHABABE"/> 
           </info> 
          </account_data> 
         </update> 
        </request> 
       </request_set> 
      </input> 
     </admin> 
    </data> 
</notification> 

Количество Запроса может быть случайным, может быть один или несколько. Моя таблица стилей применяется следующая на счета ID

<xsl:variable name="ACID"> 
    <xsl:value-of select="/notification/data/admin/input/request_set/request/update/account_data/@id"/> 
</xsl:variable> 

В этом случае для второго появления счета ID (ACID) будет допущена ошибка потому что это все равно будет принимать первый. Одна вещь, которую я хотел бы применить, следующий: Если Status в account_data = 5, то введите идентификатор учетной записи в той же строке. Не уверен, что у вас есть моя точка зрения, вы думаете, что тиды возможны? Любой другой способ сделать это? Многие Thks заранее

+1

Нет, я не понял вашу точку зрения. Покажите [минимальный, полный и проверяемый образец] (http://stackoverflow.com/help/mcve) вашего кода. Для вопросов XSLT это обычно означает хорошо сформированный входной XML, полную таблицу стилей XSLT и весь ожидаемый результат. –

+0

Если нет учетной записи с статусом 5, что вы хотите вместо этого? Вернуть первый с любым статусом или ничего? –

+0

хорошо ... XML-вход хорошо сформирован. Завершить XSLT, к сожалению, я не могу :-(Попытка объяснить лучше, я пропустил одну важную часть. Существует два разных XSLT, которые будут применять одну и ту же проверку (один выше) на том же входе: вывод, поступающий со второго XSLT, будет сообщите о первом идентификаторе учетной записи, который он встречает (2005637), поскольку все XSLT используют эту проверку. Мне нужно, чтобы встретить второй идентификатор учетной записи (3615734), который я хочу выбрать. Только дифференциация Мне нужно выбрать вторую что Status = 5 вместо = 2. Надеюсь, я был немного яснее. Спасибо за помощь –

ответ

3

Одна вещь, которую я хотел бы применить следующий: Если статус в account_data есть = 5, то возьмите идентификатор счета в одной и той же линии.

Я считаю, что вы имеете в виду:

<xsl:value-of select="/notification/data/admin/input/request_set/request/update/account_data[@Status='5']/@id"/> 

Это возвращает идентификатор (первого) account_data, чей статус 5 ("3615734" в вашем примере).

+0

так же просто, как прогулка по парку (I не имеют никаких подсказок о xslt anyways :-(. Many Many Thks –

+2

@MorganForever Пожалуйста, примите этот ответ, если он решил вашу проблему (на самом деле многие из ваших предыдущих вопросов имеют, казалось бы, правильные ответы, которые вы не приняли). –

+3

@MorganForever - «T его будет возвращать идентификатор (first) account_data ... "- это справедливо только для XSLT 1.0 или если есть только одна учетная_дана со статусом 5. Если это 2.0 и существует более одной учетной записи с статусом 5, вам нужно будет изменить значение 'xsl: value-of' в' ' –

Смежные вопросы