2013-05-17 2 views
2

번호를 계산하고 싶습니다. 특정 반복되는 상위 노드에 대한 하위 노드 변환 후 특정 요소에 대한 ID를 유지하려면이 개수가 필요합니다. 내가 사용 시도XSLT1.0 생성을위한 자식 노드의 수를 유지하기위한 ID

<Attachment id=1></Attachment> 
<Attachment id=2></Attachment> 
<Attachment id=3></Attachment> 
<Attachment id=4></Attachment> 

:

<xsl:value-of select="concat('Attachment',count(preceding-sibling::Notes))" /> 

하지만 포기하지 않을

내가

<Party><Notes><Notes><Party> 
<Party><Notes><Notes></Party> 

이 request.xml의 형식은 다음 tranformed XML은해야한다 올바른 값. 모든 안내 사항은이 문제를 해결하는 데 도움이됩니다.

+0

'<첨부 파일 id = 1>'은 (는) 잘못된 XML입니다. 그것은 '이 유효한 XML되지 않습니다 따옴표 –

+0

'이 필요합니다. 얼마나 많은 자식 노드가 있는지 분명하지 않습니다. 그것을 바로 잡으십시오 - 당신이해야 할 일만 알면 –

답변

0

count(preceding::Notes)+1을 사용할 수 있지만 xsl:number을 사용하는 것이 좋습니다.

예 ...

XML

<request> 
    <Party> 
     <Notes/> 
    </Party> 
    <Party> 
     <Notes/> 
    </Party> 
</request> 

XSLT (잘 형성되는 고정) 1.0

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

    <xsl:template match="Notes"> 
     <Attachment> 
      <xsl:attribute name="id"> 
       <xsl:number level="any"/> 
      </xsl:attribute> 
     </Attachment> 
    </xsl:template> 

</xsl:stylesheet> 

출력

<Attachment id="1"/> 
<Attachment id="2"/> 
+0

안내에 감사드립니다. 그것은 내가 필요로했던 바로 그 것이었다. – user2394566

+0

@ user2394566 - 대단히 환영합니다. 왼쪽의 체크 표시를 클릭하여이 대답을 수락하십시오. 감사! –

관련 문제