2008 Ngày 13 tháng 8 năm 2008

Tokenizing chuỗi phân cách bên trong một XSL

Nếu yêu cầu của bạn là để phân chia giá trị nút trong một XML, có chứa một chuỗi phân cách của giá trị, vào các cá nhân, sau đó bạn đã đến đúng nơi có một cái nhìn vào ví dụ dưới đây. Nếu bạn đã quen thuộc với một chút ít của XML và XSL ... Tôi không nghĩ rằng bạn sẽ cần bất kỳ lời giải thích.
Ngoài ra, ví dụ này bao gồm cách sử dụng chức năng XSL như xsl: call-template, xsl: chuỗi con, trước khi, xsl: chuỗi con sau, nếu đó là những gì bạn đang sau.

XML được chuyển đổi (food.xml): -
Giả sử công việc là tokenize các chuỗi phân cách bằng dấu phẩy, các "từ khóa" tag

<?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>

Kết quả đầu ra 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>

Không cần phải nói ... chỉ cần thay đổi các tham số "delimitr" dấu phân cách của sự lựa chọn của bạn


2008 11 tháng 8 năm 2008

Tải này Vị trí Faux WordPress

Nếu bạn là một trong những kẻ (như tôi), những người thường xuyên kiểm tra CSS của trang HTML cũng được thực hiện, để có được cảm hứng hoặc bất cứ điều gì, sau đó bạn có thể đã nhận thấy rằng chúng tôi đã sử dụng định vị giả (như đã đề cập trong bài viết trước của tôi Chúng tôi là bằng cách sử dụng Faux định vị tuyệt đối: Một CCS Brilliant Layout )

Chúng tôi đã làm một số công việc trên mẫu này, do đó, nghĩ rằng nó sẽ tốt đẹp để chia sẻ .... Tải về WordPress Theme (tải về 196 lần)


2008 07 tháng 8 năm 2008

Animoto: Really Nice "Giao diện người dùng phong phú" mà không có Flash!

Bạn đã thấy animoto.com? Vâng! đây không phải là một AD, tôi thực sự thích nó! và nó được Kiss giao diện người dùng ASS thực sự

Tôi đã xem qua trang web này một vài tuần trước đây. Nhìn thấy trang đầu tiên, dint bận tâm nhiều. Đối với tôi, nó chỉ là một trang web khác với một số nội dung flash phong phú, cho phép người dùng tải lên hình ảnh, chọn một số theo dõi và chuyển đổi nó thành một slideshow hình ảnh tốt đẹp. Tải FLV, và đặt nó trên bất kỳ trang web của sự lựa chọn của bạn (YouTube, MetaCafe, Facebook và thích) ... giai đoạn.

Hôm qua khi tôi nhìn thấy các trang dòng chảy nội bộ, người dùng thông qua việc tạo ra các slideshow này .... Tôi đã đi OH WOW! Khi tôi nhận ra rằng không có bit FLASH sử dụng. Nó thực sự là một giao diện người dùng phong phú. Tất cả các nhà phát triển giao diện người dùng phải khao khát tạo ra hoặc ít nhất là một phần của nhóm nghiên cứu đã thực hiện giao diện này .... Hoàn toàn tuyệt vời! Truyền cảm hứng!

HAVE A LOOK ... http://animoto.com/ ... và đăng ký và chơi với nó ... chỉ sau đó bạn có thể đánh giá cao những thiên tài.


2008 4 tháng 8 năm 2008

Một vấn đề với vị trí () trong XSL ... hoặc là nó?

Tôi có vấn đề này strage trong khi tạo ra một XSL ngày hôm nay. Xem xét cho câu trả lời trên net, nhưng couldnt tìm thấy bất kỳ .... Thật sự tôi đoán! Tôi dint biết vấn đề của tôi là gì, vì vậy tôi làm những gì bạn tìm?

Dù sao! Chỉ trong trường hợp bạn có vấn đề này rất giống nhau và bằng cách nào đó bởi quyền năng của FORCE bạn quản lý để hạ cánh trên trang này ... bạn sẽ cảm ơn tôi tấn ... Và nếu bạn đã vô tình hạ cánh trên trang này cho một số phận kỳ lạ và bạn xảy ra được một nhà phát triển XSL, DO LÀM Chú ý NÀY NOW, TƯƠNG LAI CHO nguyên nhân, Nếu một ngày nào đó, bạn phải đối mặt với vấn đề này, sau đó FORCE có thể không được với bạn.

Đặt vấn đề:
Tôi có XML này, có hai nút với nhiều mục trong đó các mục giữa hai nút này có một sự tương ứng 1-1. Trong ví dụ dưới đây, mỗi mục trong <array nút name="PLAYURL" /> liên quan (tương ứng với vị trí) đến một mục trong <array nút 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>

Bây giờ, tôi có một vòng lặp, i vòng lặp thông qua <array name="SITENAME">, và tôi muốn để có được những mặt hàng liên quan (tại vị trí tương ứng) <array name="PLAYURL">,

Những gì bạn normaly sẽ cố gắng làm là ...

<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>

SORRY! NÀY wont làm việc ... Ah! Surpised ...

Bây giờ bạn có thể muốn thử một cái gì đó như thế này ...

<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>

Một lần nữa điều này wont làm việc ... Bây giờ bạn gãi đầu, cố gắng để liên lạc với tất cả mọi người những người bạn biết một số XSL và có thể là bất kỳ sự giúp đỡ ... bạn cố gắng tất cả các tùy chọn khác ... và vẫn còn nó sẽ không làm việc ... Vâng! Thats những gì đã xảy ra với tôi ít nhất ...

Không nên tuyệt vọng! Hãy thử này

<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>

Hỏi tôi tại sao nó hoạt. Nguyên nhân tôi không có một lý do phải ... nếu bạn làm! Xin vui lòng thả một bình luận. Nó có thể là khá hữu ích. Ngoài ra! nếu bạn có có TITLE tốt hơn cho bài viết này, thả cho tôi một dòng :)


2008 02 tháng tám năm 2008

Thiết lập các DOCTYPE trong XSL

Tuần trước, tôi tạo ra một bố cục HTML / CSS progessive cho một khách hàng, thử nghiệm trong IE6, IE7 và FF 3, dường như hoàn toàn tốt đẹp ... ĐẾN! bố trí đi xa hơn xuống các chu kỳ Manufacting. Nó không thành công. Trang yếu tố bố trí tất cả các nơi khi bố trí HTML đã được chuyển đổi thành XSL và XML áp dụng cho nó ... thật xin lỗi!!

Không thể ngủ vào cuối tuần qua, với dự đoán của buổi sáng thứ hai, khi tôi sẽ phải sửa chữa này SH **. Nhưng bây giờ có một experince ít đối phó với các loại tình huống (quirks trình duyệt, tôi có nghĩa là), tôi biết nó đã làm với không có gì khác nhưng DOCTYPE .... và Nó WS ...

Vấn đề:
Bạn muốn kiểm soát DOCTYPE, kể từ khi chuyển đổi của bạn sẽ bao gồm một DOCTYPE mặc định một cách rõ ràng, và bạn bố trí cho một quăng.

Giải pháp:
XSLT thông số kỹ thuật cung cấp các phương pháp đầu ra để thiết lập một DOCTYPE của choise. Ngoài ra, để chúng ta giao diện người dùng phát triển, các chủ đề quan tâm sẽ là phương pháp đầu ra HTML và các phương pháp đầu ra XML .

Vâng! trước khi bạn nhận được chán, ở đây là sửa chữa.

Đối với ví dụ, nếu bạn có DOCTYPE sau đây trong phiên bản HTML của bạn:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Sau đó, trong XSL, bạn sẽ phải có những điều sau đây:

<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" />

Cuối cùng! phải bảo đảm rằng đầu ra XSLT của bạn tuân theo DOCTYPE mà bạn đã chọn.


NDK nhà | Bày tỏ IT | Diễn đạt Palate | Diễn đạt Penmenship | Bày tỏ nỗi sợ hãi | Diễn đạt Myself