2011-01-31 6 views
1

나는 다음과 같은 XSL 있습니다키가 어떻게 생성-ID (이전-형제 : ... 의미 XSL 1.0

<xsl:key name="kEventslegal" 
     match="HISTORY_EVENT" 
     use="concat(generate-id(
         preceding-sibling::HISTORY_EVENT[ 
          @Name='Item Acceptance Review event NO by Legal' 
         ][last()] 
        ), 
        '+', 
        generate-id(
         following-sibling::HISTORY_EVENT[ 
          @Name='Legal Report done' 
         ][1]) 
        )"/> 

는 XML :

<ROOT> 
    <HISTORY_EVENT Name="Item Acceptance Review event NO by Legal" 
        EVENTSUBJECT="Item Acceptance Review event NO by Legal"> 
      <EVENT_TIMESTAMP>31/01/2011 11:08:27</EVENT_TIMESTAMP> 
      <EVENT_STATE>opend</EVENT_STATE> 
      <EVENT_ROLE>Legal Unit Specialist</EVENT_ROLE> 
      <EVENT_USER>legal.test</EVENT_USER> 
      <EVENT_TYPE>normal</EVENT_TYPE> 
      <EVENT_PROCESS>Item Acceptance Review event NO by Legal Unit Specialist</EVENT_PROCESS> 
      <EVENT_MESSAGE>Item Acceptance Review event NO by Legal Unit Specialist legal.test</EVENT_MESSAGE> 
     </HISTORY_EVENT> 
........ 
</ROOT> 

어떤 아이디어

+2

@Dimitre 또는 @Alejandro처럼 보이는 사람이 귀하의 동료 중 한 사람의 질문에 대답했습니다. 물론 농담. – Flack

+0

위대한 의견 : –

+0

간단히 말해서 그것은 고유 한 문자열을 만듭니다. 이것은 두 개의 요소 노드와 delimeter의 고유 한 식별자로 구성됩니다. 첫 번째 노드는 이름 속성이있는 형제 HISTORY_EVENT 요소의 마지막 (역순으로 문서 순서대로)이고 값은 "항목 ..."입니다. 두 번째는 이름 속성이있는 형제 HISTORY_EVENT elevent의 첫 번째입니다. 값은 "Legal ..."입니다. – Flack

답변

1

<xsl:key>은 두 개의 특정 HISTORY_EVENT 요소로 둘러싸인 HISTORY_EVENT 요소를 모두 식별합니다.

  • 첫째로 - 값으로 Name 속성을 갖는 'Item Acceptance Review event NO by Legal'

  • 마지막을 - 값으로 Name 속성을 갖는 'Legal Report done'

을 요약하면이 모든 것 같습니다 검토 결과가있는 모든 법적 보고서 항목 NO.