Lưu trữ cho 'XSL' Chuyên mục

Gọi nhiều chức năng của Windows onload Trong Javascript

Thứ Bảy 7 Tháng 3, 2009 bởi Nikhil

Heres một mảnh nhỏ của Javascript thủ đoạn gian trá mà tôi đã phải đào xung quanh vì tình hình commaned nó. Trong một trong các trang web của tôi, tôi đã có tình trạng này mà tôi đã phải thực hiện "windows.onload" hai lần. Điều đầu tiên mà sẽ đến một tâm trí thiếu kinh nghiệm như tôi (tôi phải thành thật nói rằng, kể từ khi tôi đã được sử dụng Khung javascript và thư viện, tôi đã forgotton để làm những việc đơn giản tự ... buồn nhưng thật sự của tôi), là phương pháp sau đây ...

 window.onload = onloadfn1;
 window.onload = onloadfn2;
 window.onload = onloadfn3;
 vv ..

Xin lỗi để nói nhưng, công việc này wont ... không muốn thảo luận về khoa học thực hiện Javascript nhiều ... nhưng theo kinh nghiệm gần đây của tôi, chỉ có chức năng cuối cùng (onloadfn3) sẽ bị bệnh thực sự được thực thi.

Trong những tình huống bình thường, không giống như tôi (mà tôi sẽ nói về một chút sau đó) ... bạn có thể làm một trong những điều sau đây để thực hiện chức năng onload mutliple ....

Hoặc một cái gì đó như thế này

 chức năng doOnLoad () {
         onloadfn1 ();
         onloadfn2 ();
         onloadfn3 ();
 }
 window.onload = doOnLoad;

Đối với tình hình hiện tại của tôi, tôi không thể sử dụng một trong các bên trên ...
Tại sao tôi cần phải gọi windows.onload hai lần, đúng hơn là kêu gọi hai chức năng trong một chức năng onload duy nhất? Đây là cái nhìn nhanh tuyên bố vấn đề của tôi ...

"Các trang My Site được cấu trúc như các chủ đề wordpress .... tức là có một header.php chung và footer.php mà được đưa vào tất cả các trang web. Có một chức năng onload triển khai thực hiện trong footer.php để làm một số chức năng onload chung. Và có rất ít các trang cần một cái gì đó của onload của mình, ngoài những thực hiện bởi các chức năng onload chung. Nếu tôi chỉ định chức năng gọi trực tiếp đến xử lý window.onload, nó sẽ qua đi trước giao lui trong footer.php "

.... Là vấn đề của tôi hiểu :) ?

Vâng! có rất ít giải pháp mà tôi đã tìm thấy. Tất cả họ đều rất giống nhau và chủ yếu là implementions của một giải pháp được đưa ra bởi Simon Willison ( http://simonwillison.net/2004/May/26/addLoadEvent/ ) ...

Giải pháp:

Chỉ cần thêm mã javascript này vào trang web ...

 chức năng addLoadEvent (func) {
     var oldonload = window.onload;
     if (typeof window.onload! = 'chức năng') {
        window.onload = chức năng
     } Else {
        window.onload = function () {
            if (oldonload) {
                   oldonload ()
           }
           func ()
        }
    }
 } 

Và gọi nó là thay vì "windows.onload" thông thường

 addLoadEvent (FunctionToRunOnPageLoad);
 addLoadEvent (function () {
 / * Nhiều mã để chạy trên tải trang *
 }); 

Ưu điểm của đoạn mã này ...
1. Chủ yếu, Nó cho phép bạn có nhiều sự kiện windows.onload, được gọi là từ các bộ phận riêng biệt của mã của bạn, mà không overridding định nghĩa trước
2. Nó thực sự là không phô trương. Nó có thể được đặt trong một tập tin với các kịch bản khác của bạn hoặc trong một file riêng biệt.
3. Nó hoạt động ngay cả khi window.onload đã được thiết lập.


get ExpressingIT News by Email Theo dõi ExpressingIT qua Email hoặc Theo tôi trên Twitter


TEXTAREA vấn đề sụp đổ trong XSL / XSLT

Thứ Bảy 20 Tháng 9, 2008 bởi Nikhil


BÁO CÁO VẤN ĐỀ:
Tôi chạy vào một vấn đề liên quan đến điều này trong textareas XSLs. Nói cách đơn giản, các vấn đề phát sinh khi bạn có một thẻ <textarea> trống, sau đó nó sẽ sụp đổ nó để <textarea />.
nghĩa là nếu bạn có một cái gì đó như sau trong XSL của bạn và dữ liệu XML cho giá trị TEXTAREA, trả về không có gì ...

<textarea name='description'> <xsl:value-of select="DESCRIPTION"/> </ textarea>

Do trình duyệt không nhận ra điều này, nó sẽ gây ra phần còn lại của hình thức HTML để chạy vào khu vực văn bản.

GIẢI PHÁP CÓ THỂ:

Trong XSL, thêm một không phá vỡ không gian () sau khi xsl: value tag.BEWARE, để chăm sóc thêm không gian này, bạn thêm, trong quá trình kiểm chứng thực phía khách hàng của lĩnh vực này.

<textarea name='description'> <xsl:value-of select="DESCRIPTION"/> </ textarea>

Hoặc
<xsl:value-of select="concat (DESCRIPTION,'')"/>

Hoặc
Chèn một thẻ select="@unknown" /> <xsl:value-of trỏ đến một thuộc tính không rõ. Điều này sẽ buộc các phân tích cú pháp PHP XSLT để tạo ra một mở và đóng tag vùng văn bản, ngay cả khi nó không có gì ở giữa.

Hoặc
Chèn một trường <xsl:text> có chứa một không gian để buộc một thẻ đóng.

Tuy nhiên, mặc dù các giải pháp nêu trên có vẻ để sửa chữa vấn đề, tôi vẫn không tin rằng họ đúng và cách tốt nhất để sửa chữa nó. Nếu có bất kỳ cách nào khác tốt hơn sửa chữa những đứa này, Xin vui lòng cho chúng tôi biết.


get ExpressingIT News by Email Theo dõi ExpressingIT qua Email hoặc Theo tôi trên Twitter


Một loại điều kiện XSL Test (Bộ sưu tập của XSL: IF và XSL: KHI KIỂM TRA Điều kiện)

Chủ Nhật 14 tháng 9, 2008 bởi Nikhil

Mỗi khi tôi phải làm một XSL: IF hoặc XSL: KHI kiểm tra, tôi đã quay trở lại với sách tham khảo. Tôi không bao giờ dường như để ghi nhớ chúng. Nghĩ sẽ có hiểu thêm ở đó, giống như tôi, người thay vì muốn có tất cả trong số họ, có thể, ở một nơi, sẵn sàng để được gọi khi cần thiết.

Đối với những người mới ... Cú pháp cho XSL: NẾU

<xsl:if test="expression">
<- Nội dung: template ->
</ Xsl: if>

Xsl: nếu / xsl: khi thử nghiệm Bộ sưu tập
Các điều kiện dưới đây đều là những giải thích đơn giản và tự. Vì vậy, tôi tin rằng nó sẽ không cần nhiều lời giải thích

<xsl:if test="position()=last()-1">
Này nếu cuối cùng nhưng một phần tử trong danh sách!
</ Xsl: if>

<xsl:if test="SALARY> 5000 ">
Mức lương của người này lớn hơn Rs. 5000
</ Xsl: if>

<xsl:if test="count(JOBS)> 3 ">
Có hơn 3 công việc trong danh sách này!
</ Xsl: if>

<xsl:if test="(@DEPT ='SALES') hoặc (@JOINYEAR = '1997')">
Người này là từ bộ phận bán hàng hoặc năm của mình gia nhập là 1997
</ Xsl: if>

<xsl:if test="EXPERIENCE">
Người này có ít nhất một phần tử con KINH NGHIỆM.
</ Xsl: if>

<xsl:if test="@HOBBY">
Người có một thuộc tính sở thích.
</ Xsl: if>

Các điều kiện văn bản tương tự có thể được sử dụng cho XSL: CHỌN / XSL: KHI cũng

xsl: chọn

Xsl XSLT: chọn lệnh tương tự như xsl: nếu nhưng có một vài khác biệt quan trọng:
• Một xsl: chọn yếu tố có thể kiểm tra trong hơn một điều kiện và thêm các nút khác nhau để cây kết quả trên cơ sở đó điều kiện là đúng.
• Một xsl: chọn phần tử có thể có một mẫu mặc định để thêm vào cây kết quả nếu không có điều kiện là đúng sự thật. (So ​​sánh xsl: nếu, trong đó có không tương đương với một điều kiện "khác".)
• Các xsl: chọn phần tử có phần tử con cụ thể đó là cần thiết cho nó để làm việc, trong khi bạn có thể đặt bất kỳ yếu tố hình thành cũng như bạn muốn bên trong của một xsl: nếu yếu tố.

<xsl:choose>
<xsl:when test="boolean-expression">
Làm điều gì đó khi điều này boolean biểu hiện là TURE
</ Xsl: khi>
<xsl:otherwise> làm cái gì khác </ xsl: nếu không>
</ Xsl: chọn>


get ExpressingIT News by Email Theo dõi ExpressingIT qua Email hoặc Theo tôi trên Twitter


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

Thứ tư 13 tháng 8, năm 2008 bởi Nikhil

Nếu yêu cầu của bạn là để chia một giá trị nút trong một XML, có chứa một chuỗi giới hạn 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 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 việc sử dụng các chức năng như XSL xsl: call-template, xsl: chuỗi-trước, xsl: chuỗi-sau, nếu đó là những gì bạn đang sau.

XML được chuyển đổi (food.xml): -
Đảm nhận nhiệm vụ là để tokenize chuỗi phân cách bằng dấu phẩy, trong thẻ "từ khóa"

<?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 thông số "delimitr" để phân cách của sự lựa chọn của bạn


get ExpressingIT News by Email Theo dõi ExpressingIT qua Email hoặc Theo tôi trên Twitter


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

Thứ hai 4 Tháng 8, 2008 bởi Nikhil

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

Dù sao! Chỉ trong trường hợp bạn có rất cùng vấn đề này quá và bằng cách nào đó bởi sức mạnh của FORCE bạn quản lý đất đai 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 ĐẶT LƯU Ý NÀY VỚI DOANH NGHIỆP, CHO TƯƠNG LAI 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 không có thể được với bạn.

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

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

Xin lỗi! Công việc này wont ... Ah! Surpised ...

Bây giờ có thể bạn sẽ 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 và sẽ không làm việc này ... Bây giờ bạn gãi đầu của bạn, cố gắng để liên lạc với tất cả những người bạn nghĩ rằng biết một số XSL và có thể giúp đỡ bất kỳ ... bạn cố gắng hết các tùy chọn khác ... và vẫn còn nó sẽ không làm việc ... Vâng! Đó là những gì xảy ra với tôi ít nhất ...

DONT tuyệt vọng! TRY 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>

DONT ASK ME TẠI SAO CÔNG TRÌNH CNTT. Nguyên nhân tôi không có một lý do đúng ... 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. Cũng! nếu bạn có TITLE tốt hơn cho bài viết này, tôi thả cho tôi một dòng :)


get ExpressingIT News by Email Theo dõi ExpressingIT qua Email hoặc Theo tôi trên Twitter


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

Thứ Bảy 2 tháng 8, năm 2008 bởi Nikhil

Tuần trước, tôi đã tạo ra một bố trí HTML / CSS progessive cho một khách hàng, thử nghiệm nó 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 chu kỳ Manufacting. Nó đã thất bại. Các yếu tố trang bố trí chỉ đi khắp 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 bạn!

Không thể ngủ ok 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 SH này. ** Nhưng bây giờ có một experince ít trong việc đối phó với các loại tình huống (trình duyệt quirks, tôi có nghĩa), tôi biết mình cần phải làm gì với không có gì khác nhưng DOCTYPE .... và nó đã được ...

Vấn đề:
Bạn muốn kiểm soát các 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í sẽ được ra cho một quăng.

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

Vâng! trước khi bạn cảm thấy buồn chán, đây là sửa chữa.

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

và cuối cùng! phải bảo đảm rằng sản lượng XSLT của bạn tuân theo DOCTYPE mà bạn đã chọn.


get ExpressingIT News by Email Theo dõi ExpressingIT qua Email hoặc Theo tôi trên Twitter


Bao gồm XSL trong XSL

Chủ Nhật 4 tháng 5, 2008 bởi Nikhil

Nếu XML / XSL Transforms là miền của bạn, sau đó có những lúc chúng ta muốn có một mảnh của động đang được sử dụng mục thư viện (được thực hiện tái sử dụng). Những gì tôi có nghĩa là, có thể có thể được thực hiện rõ ràng hơn với kịch bản ví dụ này.

Hãy tưởng tượng bạn đang tạo ra một trang web (và sử dụng XML, XSL transfroms ofcourse) và hầu hết các trang sẽ có một nhận xét ​​Module. Vâng! sau đó hoặc là bạn sao chép hoặc dán mã này vào mỗi mẫu trang (mà tôi không có nói, nhưng thực hiện bảo trì và làm lại một cơn ác mộng) hoặc thậm chí tốt hơn, bạn tạo ra một BAO GỒM tập tin mà có thể được kéo vào nơi nào bạn muốn nó trong trang web của bạn ( s) ...
Vì vậy, CHÚNG TÔI TẠO một XSL BAO GỒM tập tin và bao gồm nó trong một tập tin XSL? Ở đây là làm thế nào ...

Chỉ để làm cho mọi việc rõ ràng ... đây là danh sách những tập tin mà bạn sẽ tạo ra ... đây, chúng tôi sẽ bao gồm thông tin về các loại trái cây và rau quả vào một trang mẹ gọi là thực phẩm.

1. food.xml - xml tập tin dữ liệu mà việc chuyển đổi sẽ được áp dụng
2. food.xsl - tập tin XSL chính, mà sẽ chuyển đổi food.xml của chúng tôi
3. inc_fruits.xsl - XSL bao gồm tập tin đó sẽ làm cho trái cây dữ liệu
4. inc_vegtables.xsl - XSL bao gồm tập tin đó sẽ làm cho vetetables dữ liệu

Tôi không nghĩ rằng tôi đã giải thích nhiều, các mã số cho các yếu tố trên, sẽ được tự giải thích ...

FOOD.XML


<?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>
<fruits type="tropical">
<item name="mango" moreinfo="http://www.mango.com">Mango is the king of fruits</item>
<item name="banana" moreinfo="http://www.banana.com">Banana once a day , keeps the doctor away</item>
<item name="orange" moreinfo="http://www.orange.com">Orange is the color and rich in vitamin C</item>
<item name="Papaya" moreinfo="http://www.papaya.com">Papaya - Hot when raw, cold when ripe</item>
</fruits>

<vegetables>
<item name="spinach" moreinfo="http://www.spinach.com">Spinach is full of iron</item>
<item name="asparagus" moreinfo="http://www.asparagus.com">Asparagus contains loads of vitamin D </item>
<item name="fenugreek" moreinfo="http://www.fenugreek.com">Fenugreek is rich in vitamin C</item>
</vegetables>
</food>


FOOD.XSL


<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="inc_fruits.xsl" />
<xsl:include href="inc_vegetables.xsl" />
<xsl:template match="/">
<html>
<head>
<title>Title</title>
</head>
<body>
<h3><xsl:value-of select="/food/description" /></h3>
Modification Date : <xsl:value-of select="/food/date" />
<hr/>
<h5> About Fruits</h5>
<xsl:call-template name="about_fruits"/>

<hr/>
<h5> About Vegetables</h5>
<xsl:call-template name="about_vegetables"/>

<hr/>
</ Body>
</ Html>
</ Xsl: template>
</ Xsl: stylesheet>


INC_FRUITS.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="iso-8859-1" />
<xsl:template name="about_fruits">
<xsl:for-each select="/food/fruits/item/@*">
attribute name : <xsl:value-of select="name()"/>
attribute value : <xsl:value-of select="."/> <br />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>


INC_VEGETABLES.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="iso-8859-1" />
<xsl:template name="about_vegetables">
<xsl:for-each select="/food/vegetables/item/@*">
attribute name : <xsl:value-of select="name()"/>
attribute value : <xsl:value-of select="."/> <br/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

Tải về tất cả các tập tin trên đây (349 tải)


get ExpressingIT News by Email Theo dõi ExpressingIT qua Email hoặc Theo tôi trên Twitter


Làm việc với XML Node thuộc tính trong XSLT

Thứ Sáu 4 tháng tư, năm 2008 bởi Nikhil

Nếu bạn sử dụng XML và XSL, sau đó bạn có thể đã đi qua một thời gian, khi bạn có để chơi xung quanh với các thuộc tính và giá trị của các nút XML trong bạn XSL. Họ là vô số các trang web có thông tin hơi lâu về điều này, nhưng không ai tìm thấy tôi thật ngắn ngủi và chính xác ... Đây là NO XML / XSL Tutorial, nhưng nỗ lực của tôi để thỏa cùng một số loại danh sách cheat ...

XML mẫu mà chúng tôi sẽ làm việc với vẻ như thế này ...

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<fruits type="tropical">
<item name="mango" moreinfo="http://www.mango.com">Mango is the king of fruits</item>
<item name="banana" moreinfo="http://www.banana.com">Banana once a day , keeps the doctor away</item>
<item name="orange" moreinfo="http://www.orange.com">Orange is the color and rich in vitamin C</item>
<item name="Papaya" moreinfo="http://www.papaya.com">Papaya - Hot when raw, cold when ripe</item>
</fruits>
</food>

Vì vậy, Cho phép bắt đầu chuyển XML trên của chúng tôi sử dụng XSL

Ví dụ 1: Hiển thị giá trị tại một thuộc tính lựa chọn

<xsl:value-of select="/food/fruits/item[@name='orange']" /><br />
to get more information about <a href="{/food/fruits/item[@name='orange']/@moreinfo}" target="new" ><xsl:value-of select="/food/fruits/item[@name='orange']/@name" /> </a>

Kết quả HTML sẽ như thế nào

Orange is the color and rich in vitamin C,
to get more information about <a href="http://www.orange.com" target="new">


Ví dụ 2: Lặp qua và hiển thị tất cả tên thuộc tính XML và giá trị của họ

<xsl:for-each select="/food/fruits/item/@*">
attribute name : <xsl:value-of select="name()"/>,
attribute value : <xsl:value-of select="."/> <br />
</xsl:for-each>

Kết quả HTML sẽ như thế nào


attribute name : name, attribute value : mango
attribute name : moreinfo, attribute value : http://www.mango.com
attribute name : name, attribute value : banana
attribute name : moreinfo, attribute value : http://www.banana.com
attribute name : name, attribute value : orange
attribute name : moreinfo, attribute value : http://www.orange.com
attribute name : name, attribute value : Papaya
attribute name : moreinfo, attribute value : http://www.papaya.com


Tải về tất cả các tập tin trên đây (346 tải)



Xem không gian này, tôi sẽ tiếp tục cập nhật này với những phát hiện mới ...


get ExpressingIT News by Email Theo dõi ExpressingIT qua Email hoặc Theo tôi trên Twitter


Theo dõi ExpressingIT RSS
get ExpressingIT News by Email Theo dõi ExpressingIT qua Email
Theo tôi trên Twitter