관련 : http://killofki.tistory.com/entry/xml-xsl-ktours-to-xml-project2

kTours 관련 프로젝트를 하다가 다시 초심...으로 돌아간다기보다는, 뭐랄까...
예전에 만들어놓은 내용을 훑어보고 다시 쬐금씩 개조해보다가 이런 부분이 보였다.

...


<!-- document -->
<xsl:template match="document">

<xsl:element name="div">

<xsl:for-each select="*|text()">
<xsl:choose>
<xsl:when test="name(.)='b'">
<xsl:element name="b">
<xsl:value-of select="." />
</xsl:element>
</xsl:when>
<xsl:when test="name(.)='br'">
<xsl:element name="br">
<xsl:value-of select="." />
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="." />
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>

</xsl:element>

</xsl:template>


...

음... 기본적인 문제는 없는...듯 싶었다가
<![CDATA[ ]]> 를 name() 으로 어떻게 지정하나...라는 생각도 들었고,

예전에 <zoom 부분을 document 에 넣어봐야한다는 말을 넣었던 기억도 생각났다.

...

그래서(?), 조금 더 개조해본 내용은...

...


<!-- document -->
<xsl:template match="document">

<xsl:element name="div">

<xsl:for-each select="*|text()">
<xsl:choose>
<xsl:when test="name(.)='b'">
<xsl:copy-of select="." />
</xsl:when>
<xsl:when test="name(.)='br'">
<xsl:copy-of select="." />
</xsl:when>
<xsl:when test="name(.)='TABLE'">
<xsl:copy-of select="." />
</xsl:when>
<xsl:when test="name(..)='document'">
<xsl:value-of select="." />
</xsl:when>
</xsl:choose>
</xsl:for-each>

</xsl:element>

</xsl:template>


...

뭐랄까...

기존에 처음부터 복사해오거나, element 를 만들던 부분을
<b 와 <br, 그리고 <TABLE 로 제한시키고

나머지는 name(..) ( = 상위태그명 ) 의 여부로 따져서...
(뭐... 기본적인 target 대상은 <zoom 과 <![CDATA[]]> 이겠지만...)

텍스트만 출력시키도록 했다.

...

이 방법으로 <document 안에 <![CDATA[ 와 함께
<zoom 을 넣을 수 있게 됐다고 할까...
(기존에는 <document 를 여러개 추가해야하나...로 고민하고 있었음...
그렇게 하면 표시순서에 문제가 생길 수 있다는 문제가... (뭐... <xsl:for-each 로 적용하면 되긴 하겠지만...))

*참고*
TABLE 만 대문자인 이유는, 다른 곳(지도첨부...등의 기능)에서 복사해온 내용이라
소문자로 적용이 안되어있어서임.

...

이제 남은건... = =;... 무지 많겠지만... (아직 따로 계획도 없고...)
뭐... 차근 차근 풀어나가야겠지...

...

NowMark killofki@.

ps... 완성되어있던 xml & xsl 내용들을 여러 웹브라우져에 테스트해봤는데,
chrome 만 적용이 안되는 것 같다...
-.-? DOE 를 쓴 것...이랑 비슷한 문제려나...?

Posted by killofki
,