2012-11-01 3 views
5

내가 XSL 문서를 변환하고있어이 같은 HTML로 : 그것은 올바른 방법는 XSL을 사용하여 : 요소 태그를 html로 변환

<xsl:template match="/"> 
    <html> 
     <head> 
     <title>Title</title> 
     </head> 
     <body> 
     Blah-blah 
     </body> 
    </html> 
    </xsl:template> 

인가? 아니면, 아마도 xsl:element을 사용하는 것이 더 낫습니다. 그런 변종을 가진 예를 보지 못했습니다 :

<xsl:template match="/"> 
    <xsl:element name="html"> 
     <xsl:element name="head"> 
     <xsl:element name="title"> 
      Title 
     </xsl:element> 
     </xsl:element> 
     <xsl:element name="body"> 
     Blah-blah 
     </xsl:element> 
    </xsl:element> 
    </xsl:template> 

어떤 변형이 맞습니까?
감사합니다.

답변

4

리터럴 결과 요소 (첫 번째 방법)는 짧고 입력하기 쉽고 읽기 쉽습니다. 예를 들어 입력 데이터를 기반으로 요소 이름 및/또는 네임 스페이스를 동적으로 계산하려는 경우에만 xsl:element을 사용하는 것이 좋습니다.

<xsl:template match="*"> 
    <xsl:element name="{translate(local-name(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')}"> 
    <xsl:apply-templates/> 
    </xsl:element> 
</xsl:template> 

다른 경우에는 첫 번째 샘플에서와 같이 리터럴 결과 요소를 사용합니다. 그러나 결과 측면에서 옳고 그름이 없으며 두 변형 모두 동일한 결과 트리를 제공합니다.

+0

아,이 경우 (요소 이름 계산)에 대해 생각하지 않았습니다. 고마워요, 지금은 저에게 더 분명합니다! – bsiamionau

관련 문제