2013-01-17 3 views
0

내 입력 문서에는 가능한 값의 수가 제한되어 있습니다. 이러한 값은 집계로 읽어야하며 가장 높은 기존 우선 순위는 단일 값으로보고됩니다. 그래서 예를 들면 :우선 순위가 1 인 finite-many를 1로 매핑하는 방법

내 가능한 입력 태그 인 경우 : (하지만 그들 중 모든이 항상 존재하고 주문이 garunteed되지 않음)

<SomeInput>A</SomeInput> 
<SomeInput>B</SomeInput> 
<SomeInput>C</SomeInput> 
<SomeInput>D</SomeInput> 

나의 우선 순위는 A, 그 다음 B, 다음 C했다, 다음 D.이 경우에는 내가 내 출력이 원하는 것 :

<SomeInput>D</SomeInput> 
<SomeInput>B</SomeInput> 

하는 yie한다 :의 경우

<SomeOutput>A</SomeOutput> 

을 LD : 사전에

<SomeOutput>B</SomeOutput> 

감사

답변

0

사용 :

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output omit-xml-declaration="yes" indent="yes"/> 
    <xsl:strip-space elements="*"/> 

<xsl:template match="/*/*[. eq min(/*/*/string())][1]" priority="2"> 
    <someOutput><xsl:apply-templates/></someOutput> 
</xsl:template> 
<xsl:template match="/*/*"/> 
</xsl:stylesheet> 

이 TRANSF을 : 여기

/*/*[. eq min(/*/*/string())][1] 

는 완전한 변화입니다 원하는 정확한 결과가 생성된다

<t> 
    <SomeInput>A</SomeInput> 
    <SomeInput>B</SomeInput> 
    <SomeInput>C</SomeInput> 
    <SomeInput>D</SomeInput> 
</t> 

:

<SomeOutput>A</SomeOutput> 
ormation은 (그것 wellformed XML 문서를 만들기 위해 단일 최상위 요소로 싸서 제공 단편) 다음 XML 문서
에인가

같은 변형이 XML 문서에 적용되는 경우 :

<t> 
    <SomeInput>D</SomeInput> 
    <SomeInput>B</SomeInput> 
</t> 

다시 원하는, 올바른 결과가 생성됩니다

<SomeOutput>B</SomeOutput>