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

Heres một mảnh nhỏ của Javascript thủ đoạn gian trá mà tôi đã phải đào bới xung quanh vì tình hình commaned nó. Trong một trong những 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. Việc đầ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 điều đơn giản trên của riêng tôi ... buồn nhưng là sự thật), 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 mutliple chức năng onload ....

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? Dưới đây là cái nhìn nhanh chóng tại báo cáo vấn đề của tôi ...

"Các trang My Site được cấu trúc như WordPress chủ đề .... tức là có một header.php và footer.php phổ biến 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 phổ biến. Và có một vài 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 phổ biến. Nếu tôi chỉ định chức năng gọi lại trực tiếp đến xử lý window.onload, nó sẽ quá mức đi xe callbacks được giao trước đó trong footer.php "

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

Vâng! có vài 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:

Đơn giản 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 = func
     } Else {
        window.onload = function () {
            if (oldonload) {
                   oldonload ()
           }
           func ()
        }
    }
 } 

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

 addLoadEvent (FunctionToRunOnPageLoad);
 addLoadEvent (function () {
 / * Mã khác để chạy trên tải trang *
 }); 

Ưu điểm của mã này đoạn mã ...
1. Trước hết, 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 tập tin 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


Vấn đề TEXTAREA Collapse trong XSL / XSLT

Thứ Bảy 20 Tháng Chín, 2008 By Nikhil


BÁO CÁO VẤN ĐỀ:
Tôi chạy vào trong này một vấn đề liên quan trong textareas XSLs. Nói một cách đơn giản, các vấn đề phát sinh khi bạn có một thẻ trống <textarea>, sau đó nó sẽ sụp đổ nó vào <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 tên = 'Mô tả'> <xsl: value-of select = "mô tả" /> </ 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 các 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: tag.BEWARE giá trị, chăm sóc của không gian này có thêm 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 tên = 'Mô tả'> <xsl: value-of select = "mô tả" /> </ textarea>

Hoặc
<Xsl: value-of select = "concat (mô tả, '')" />

Hoặc
Chèn một <xsl: value-of select = "@ chưa biết" /> tag 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 thẻ vùng văn bản khai mạc và bế mạc, ngay cả khi nó không có gì ở giữa.

Hoặc
Chèn một <xsl: text> trường 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ẻ để khắc phục vấn đề này, 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 của việc sửa điều không minh bạch 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 của XSL kiểm tra điều kiện (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 By Nikhil

Mỗi lần tôi phải làm một XSL: IF hoặc XSL: WHEN kiểm tra, tôi có đi lại những cuốn sách tham khảo. Tôi không bao giờ dường như để ghi nhớ chúng. Nghĩ sẽ có thêm ở đó, giống như tôi, người thay vì muốn có tất cả trong số họ, có thể, tại 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 = "khái niệm">
<! - Nội dung: template ->
</ Xsl: if>

Các xsl: if / xsl: khi thử nghiệm Bộ sưu tập
Các điều kiện dưới đây đều 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 = "vị trí () = cuối cùng () - 1">
Điều 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">
Tiền lương của người này lớn hơn Rs. 5000
</ Xsl: if>

<Xsl: if test = "count (JOBS)> 3">
Hiện 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 Tham gia là 1997
</ Xsl: if>

<Xsl: if test = "KINH NGHIỆM">
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: choose

Xsl XSLT: chọn hướng dẫn tương tự như xsl: if nhưng có một số khác biệt quan trọng:
• Một xsl: lựa chọn yếu tố có thể kiểm tra cho 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ố tốt được hình thành mà bạn muốn bên trong của một xsl: nếu yếu tố.

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


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 By 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 đã đạt đế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 XSL như xsl: call-template, xsl: substring-trước, xsl: substring-sau, nếu đó là những gì bạn đang sau.

XML được chuyển đổi (food.xml): -
Giả sử chúng ta đang phải tokenize chuỗi giới hạn bởi các dấu phẩy, trong thẻ "từ khoá"

<?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" để 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 By Nikhil

Tôi có vấn đề strage này khi tạo ra một XSL ngày hôm nay. Tìm kiếm 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 những gì 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ý để hạ cánh trên trang này ... bạn sẽ cảm ơn tôi tấn ... Và nếu bạn có vô tình hạ cánh trên trang này một số phận kỳ lạ và bạn xảy ra được một nhà phát triển XSL, DO MAKE A LƯU Ý NÀY NOW, 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 đó các 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 nó 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 <mảng name = "PLAYURL" /> liên quan (vị trí tương ứng) đến một mục trong nút <mảng 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 <mảng name = "SITENAME">, và tôi muốn để có được những tài liệu liên quan (tại các vị trí tương ứng) trong <mảng 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 !! LÀM 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 hệ 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 thử 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! Đó 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 IT WORKS. 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 nhận xét. Nó có thể là khá hữu ích. Ngoài ra! nếu bạn có TITLE tốt hơn cho bài viết này, tôi thả 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 By Nikhil

Tuần trước, tôi đã tạo ra một bố trí progessive HTML / CSS cho một khách hàng, kiểm tra 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ành thật xin lỗi !!!

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 chút experince trong việc đối phó với các loại tình huống (Browser 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 .... Nó và WS ...

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, đối với chúng ta phát triển giao diện người dùng, các chủ đề quan tâm sẽ là phương pháp đầu ra HTMLphươ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.

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

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

Nếu XML / XSL Transforms là tên 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 làm cho 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 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ó bên trong một tập tin XSL? Sau đây là cách ...

Chỉ cần để 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 file dữ liệu mà trên đó 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ẽ khiến trái cây dữ liệu
4. inc_vegtables.xsl - XSL bao gồm tập tin đó sẽ khiến vetetables dữ liệu

Tôi không nghĩ rằng tôi có 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 (378 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ứ 6 4 Tháng 4, 2008 By 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à tải trọng của các trang web với thông tin hơi dài về điều này, nhưng không ai tôi thấy 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 với nhau một số loại danh sách cheat ...

XML mẫu mà chúng ta sẽ làm việc với ngoại hình 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>

HTML kết quả 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ả các tên XML Thuộc tính 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>

HTML kết quả 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 (375 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