2008 13 2008 8월
귀하의 요건 가치 구분된 문자열을 포함하는 XML의 노드 값을 분할 경우, 개별 항목에 다음, 당신은 바로 이곳에 도달했습니다 ... 아래 예제에서 본다 구. 당신이 XML과 XSL은 약간 잘 알고있다면 ... 당신이 어떤 설명도 필요 할거라 생각하지 않아요.
XSL, 호출 템플릿 : 문자열 - 전, XSL : 또한이 예제는 XSL과 같은 스타일 기능의 사용을 포함 문자열 - 후에, 당신이 눈독들이면.
변환하기 위해 XML (food.xml) : -
작업 태그 "키워드"에서 쉼표로 구분된 문자열을 tokenize하는 것입니다 가정
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<date>July 2008</date>
<description>All about things we eat everyday</description>
<keywords>Fruits, Vegetables, Pulses, Meat, Cereals </keywords>
</food>
XSL (food.xsl) : -
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>XSL 1.0 Delimited String Tokeniser</title>
</head>
<body>
<xsl:value-of select="food/meta"/>
<div >
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="food/keywords" />
<xsl:with-param name="delimitr" select="','" />
</xsl:call-template>
</div>
</body>
</html>
</xsl:template>
<xsl:template name="tokenize">
<xsl:param name="string" />
<xsl:param name="delimitr" />
<xsl:choose>
<xsl:when test="contains($string, $delimitr)">
<div style="border:1px solid red;">
<h3><xsl:value-of select="substring-before($string,$delimitr)" /></h3>
<xsl:variable name="data" select="substring-before($string,$delimitr)"/>
</div>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="substring-after($string, $delimitr)" /><xsl:with-param name="delimitr" select="$delimitr" /></xsl:call-template>
</xsl:when>
<xsl:otherwise>
<div style="border:1px solid red;">
<h3><xsl:value-of select="$string" /></h3>
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
결과 출력 HTML : -
<div>
<div style="border: 1px solid red;">
<h3>Fruits</h3>
</div>
<div style="border: 1px solid red;">
<h3> Vegetables</h3>
</div>
<div style="border: 1px solid red;">
<h3> Pulses</h3>
</div>
<div style="border: 1px solid red;">
<h3> Meat</h3>
</div>
<div style="border: 1px solid red;">
<h3> Cereals </h3>
</div>
</div>
말할 필요도없이 그냥 원하는 구분자로 매개 변수를 "delimitr"를 변경
아무 코멘트 | 태그 없음 : 자습서 , XSLT |에 게시된 스타일
2008 2008년 8월 11일
당신이 영감이든받을 종종 잘 만들어진 HTML 페이지의 CSS를 확인 놈들 중 하나 (나 같은),있다면, 당신은 우리가 (이미 이전 기사에서 설명한대로 가짜 위치를 이용하는 것으로 파악했을 수도 있습니다 우리는 가짜 절대 위치를 사용하여 : 브릴리언트 CCS 레이아웃이 )
우리는이 템플릿에 좋은 작품은, 그래서 그것을 공유하는 것이 참 .... 생각 했어요 이 워드 프레스 테마를 (196 회 다운로드) 다운로드
1 개의 덧글 | 태그 : 다운로드 , 워드 프레스 템플릿 |에 게시된 다운로드
2008 7 2008 8월
당신은 animoto.com 봤니? 글쎄! 이것은 AD 아니라, 내가 정말 좋아! 그리고 그것은 참으로 엉덩이 UI를 키스
몇 주 전에이 사이트를 발견 했어. 첫 페이지를 보았는데, 많은 걱정을 움푹 들어간 곳. 저한 테는 사용자가 이미지를 업로드 일부 트랙을 선택하고 멋진 사진 슬라이드쇼로 변환하므로 일부 풍부한 플래시 콘텐츠가 포함된 또 다른 사이트를했습니다. FLV를 다운로드하여 원하는 모든 사이트 (유튜브, MetaCafe, 페이스 북과 좋아하는) ... 기간에 올려 놓는거야.
어제 내가이 슬라이드쇼 생성을 통해 사용자를 찍은 내부 흐름 페이지를봤을 때 .... 나는 오 와우 갔어요! 저는 플래시 사용의 비트가없는 것을 알았을 때. 그것은 참으로 풍부한 사용자 인터페이스했습니다. 모든 UI 개발자 만들 바램이거나 적어도이 인터페이스를 하셨읍니다 팀의 일부가되어야합니다 .... 정말 훌륭 했어! 그리고 격려!
저기 .. 가질 http://animoto.com/을 ... 그리고 등록하고 이걸 가지고 놀았 ... 오직 그때 당신은 천재 감사합니다.
1 개의 덧글 | 태그 : 풍부한 사용자 인터페이스 , 잘 설계된 사이트 |에 게시된 사용자 인터페이스 Desgin
2008 4 2008 8월
오늘 XSL을 만드는 동안 나는이 strage 문제를했다. 그물에 걸쳐 답변을 찾아 보았지만 아무것도 발견 couldnt .... 사실 내 생각! 나는 힘 내 문제가 뭔지, 그래서 어떤 꿈에 보여?
어쨌든! 만약 당신이 나한테 만톤 감사 것입니다 ... 너무 그리고 어떻게든이 페이지에 비행 관리 포스의 힘을하여이 똑같은 문제가 ... 그리고 당신이 실수로 이상한 운명이 페이지에 착륙하고있다면 될거야 언젠가, 당신은이 문제에 직면하는 경우 XSL 개발자, 미래 원인 동안만를 적어 볼까, 그러면 포스가 함께하길하지 않을 수 있습니다.
문제 진술 :
거기에 여러 항목을 가진 두 노드가 어디에,이 XML을 가지고이 두 노드 사이 항목은 1-1 대응 있습니다. 아래 예제에서 노드 <array의 각 항목 name="PLAYURL" /> 노드 <array에 항목 (해당 위치) 관련 name="SITENAME" />
<?xml version="1.0" encoding="utf-8"?>
<myplaylists>
<playlist>
<title>Best of Rest </title>
<array name="SITENAME">
<str>www.musicindiaonline.com</str>
<str>www.dhingana.com</str>
<str>www.raaga.com</str>
<str>www.smashits.com</str>
<str>www.desimusic.com</str>
<str>www.musicplug.in</str>
</array>
<array name="PLAYURL">
<str>http://www.musicindiaonline.com/123/</str>
<str>http://www.dhingana.com/play/123</str>
<str>http://www.raaga.com/123</str>
<str>http://ww.smashits.com/123</str>
<str>http://www.desimusic.com/123</str>
<str>http://www.musicplug.in/123</str>
</array>
</playlist>
</myplaylists>
내가 <array name="SITENAME">로 루프, 그리고 내가 <array name="PLAYURL">에서 관련 항목을 (해당 위치에서)받을하려는 자, 난, 루프를 가지고
당신이 normaly 할을 시도 것은 ...
<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
play from : <a href="{../../array[@name='PLAY']/str[position()]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
죄송합니다! 이렇게는 안되 실거예요 ... 아!! Surpised ...
이제 아마 시도 이런 게 좋습 ...
<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos"> <xsl:value-of select="position()"/></xsl:variable>
play from : <a href="{../../array[@name='PLAY']/str[$pos]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
그리고 다시 이런 일을 실거예요 ... 이제 당신은 머리를 긁적 당신은 어떤 스타일을 모른다고 생각하는 모든 사람을 만나려하고 도움이 될 수있다 당신은 다른 모든 옵션을 시도 ... 그리고 여전히 작동 실거예요 ... 글쎄! 그게 전부 내게 atleast 어떻게 ...
절망 되네요! 이걸 써봐
<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos-int" select="position()" />
play from : <a href="{../../array[@name='PLAY']/str[$ <xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos-int" select="position()" />
play from : <a href="{../../array[@name='PLAY']/str[$ pos-int ]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
어떻게 될지는 나한테 물어 없다. 내가 정당한 이유가 없다 ... 어쩔한다면! 댓글을 떨어뜨리지 마십시오. 꽤 usefull 수도 있습니다. 또! 이 게시물에 대한 더 좋은 제목이있다면, 내 라인을 떨어뜨 할 
아무 코멘트 | 태그 : 스타일 , 스타일 만지면 , XSLT는 |에 게시된없는 스타일
2008 이 2,008 8월
지난 주 나는 클라이언트 progessive HTML / CSS 레이아웃을 만들어 IE6, IE7과 FF 3에서 그것을 테스트 완벽하게 정상적으로 보였습니다 ... 전까진 말이야 레이아웃은 manufacting주기 아래 추가했습니다. 그것이 실패했습니다. 페이지 레이아웃 요소는 모든 HTML 레이아웃은 XSL과 XML이 적용 ... 이거 실망을!로 전환되었다 떠돌았!
이 SH ** 고쳐야만 할 때, 월요일 아침에 대비, 지난 주말 OK 잠을 잘 수 없습니다. 그러나 이제는 이러한 가지 상황 (브라우저 만지면, 내말은) 상대의 작은 experince하는 데, 난 그것이 다른 아무것도 할하지만 DOCTYPE해야한다고 생각 했어요 .... 그런데 ...
문제 :
당신의 변화를 명시적으로 기본 DOCTYPE을 포함하므로 당신은 DOCTYPE 제어할 필요하고 레이아웃 토스 잠들어있을 것입니다.
해결 방법 :
XSLT 사양은 choise의 DOCTYPE을 설정 출력 방법을 제공합니다. 또한 저희 UI 개발자를위한, 관심있는 주제가 될 HTML 출력 방법 과 XML 출력 방법 .
글쎄! 당신은 지루해하기 전에, 여기에 수정 프로그램입니다.
예 :, 당신의 HTML 버전에 다음과 같은 DOCTYPE있다면 :. -
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
그런 다음 XSL에 다음이 필요 할 것입니다 : -
<xsl:output method="html" doctype-system="http://www.w3.org/TR/html4/loose.dtd" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" indent="yes" />
그리고 마지막으로! 귀하의 XSLT 출력이 선택한 DOCTYPE을 충성 스러운지 확인 않습니다.
1 개의 덧글 | 태그 : 브라우저 만지면 , DOCTYPE , XML , XSL은 |에 게시된 스타일