xslt 에 관한 질문...

닥북 활용에 대한 모든 질문과 답변

xslt 에 관한 질문...

전체글글쓴이: 초보자 » 2005-08-24 11:33 pm

코드: 모두 선택
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title> TEST</title>
  </head>
 
  <body>
  <p>
    1234567890
  </p>
  </body>
</html>


위의 html 문서에 아래의 xsl 스타일시트를 적용했습니다.
코드: 모두 선택
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet     
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0">

    <xsl:template match="html">
        <html_XYZ>
            <xsl:apply-templates />
        </html_XYZ>
    </xsl:template >
   
    <xsl:template match="*">
        <xsl:element name="{name()}_ABC" >
            <xsl:apply-templates />
        </xsl:element>
    </xsl:template>
   
</xsl:stylesheet>


그랬더니 이런 결과가 나옵니다.
코드: 모두 선택
<?xml version="1.0" encoding="UTF-8"?>
<html_ABC>
  <head_ABC>
    <title_ABC> TEST</title_ABC>
  </head_ABC>
 
  <body_ABC>
  <p_ABC>
    1234567890
  </p_ABC>
  </body_ABC>
</html_ABC>


html 태그에 대한 규칙이 따로 있는데도 불구하고 * 에 대한 규칙이 적용됩니다. 혹시 제가 뭔가 빼먹은게 있나요???
이곳의 docbook 패키지에 있는 xalan.bat 을 이용했습니다.
초보자
 

전체글글쓴이: 초보자 » 2005-08-25 2:33 pm

해결했습니다...
원본 html 에 namespace 는 지정되어 있는데 접두어가 없어서 생긴 문제인듯합니다.

스타일시트 시작부분을 아래처럼 바꾸고
코드: 모두 선택
<xsl:stylesheet     
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xhtml="http://www.w3.org/1999/xhtml"
    xmlns="http://www.w3.org/1999/xhtml"
    version="1.0">



html 매치부분을 아래처럼 바꾸니 잘됩니다...
코드: 모두 선택
    <xsl:template match="xhtml:html">
        <html_XYZ>
            <xsl:apply-templates />
        </html_XYZ>
    </xsl:template >
초보자
 


다시 돌아감: 질문과 답변

접속 중인 사용자

이 포럼에 접속 중인 사용자: 접속한 회원이 없음 그리고 손님들 8 명

cron