Lưu trữ cho 'XSL' Category

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 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 với 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 trên của riêng tôi ... buồn nhưng đúng), là các 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 của tôi gần đây, chỉ có các chức năng mới (onloadfn3) sẽ bị bệnh thực sự được thực thi.

Trong 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 những việc 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, chứ không phải 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 lướt qua tuyên bố vấn đề của tôi ...

"Các trang My Site được cấu trúc như các theme Wordpress .... 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 chung. VÀ có vài trang mà cần một cái gì đó của onload của mình, ngoài những người 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 để xử lý window.onload, nó sẽ quá mức đi xe callbacks phân bổ trước đó trong footer.php "

.... Được 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 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" thông 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. Chủ yếu, nó cho phép bạn có nhiều sự kiện windows.onload, 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 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 bằng Email hoặc Theo tôi trên Twitter


Vấn đề TEXTAREA Collapse trong XSL / XSLT

Thứ Bảy 20 Tháng 9, 2008 By Nikhil


TUYÊN BỐ VẤN ĐỀ:
Tôi chạy vào trong này một vấn đề liên quan đến textareas trong XSLs. Nói 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 các giá trị TEXTAREA, trả về không có gì ...

<Textarea name = 'description'> <xsl: value-of select = "mô tả" /> </ textarea>

Là trình duyệt không nhận ra điều này, nó sẽ gây ra các 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: tag.BEWARE giá trị, chăm sóc cho không gian này có thêm bạn thêm vào, trong quá trình kiểm chứng thực phía khách hàng về lĩnh vực này.

<Textarea name = 'description'> <xsl: value-of select = "mô tả" /> </ textarea>

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

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 thẻ vùng văn bản khai mạc và bế mạc, thậm chí nếu 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ó thể dường như để 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 của việc sửa 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 bằng Email hoặc Theo tôi trên Twitter


Một Variety của XSL Kiểm tra điều kiện (Bộ sưu tập của XSL: IF và XSL: KHI THI 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, những người thà thích 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 = "biểu hiện">
<! - 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 là 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 () = cuối cùng () - 1">
Điều này nếu cuối, 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à lớn hơn Rs. 5000
</ Xsl: if>

<Xsl: if test = "count (JOBS)> 3">
Có hơn 3 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 ông là 1997 Tham gia
</ 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">
Những người có một sở thích thuộc tính.
</ 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 lệnh tương tự như xsl: if nhưng có một vài điểm khác biệt quan trọng:
• Một xsl: chọn phần 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ác cây kết quả nếu không có điều kiện là đúng sự thật. (So ​​sánh xsl: if, mà không có 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 phần tử.

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


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


Tokenizing Delimited chuỗi bên trong một XSL

Thứ 4 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 phân định các giá trị, vào các cá nhân, sau đó bạn đã tới nơi đúng ... 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 phân cách bởi 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 tham số "delimitr" để phân cách các lựa chọn của bạn


get ExpressingIT News by Email Theo dõi ExpressingIT bằng 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 trong khi tạo ra một XSL ngày hôm nay. Nhìn 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, 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, ĐỪNG ĐẶT CHÚ 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 đó các FORCE không 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ặt hàng trong đó và 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 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 các 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 !! NÀY LÀM VIỆC 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>

Và một lần nữa công việc này wont ... 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 mỗi 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 THIS

<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 WHY TRÌNH IT. 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ó TITLE tốt hơn cho bài này, đừng thả cho tôi một dòng :)


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


Thiết lập 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ố cục HTML progessive / 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 các 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 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 các DOCTYPE bạn đã chọn.


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


Bao gồm XSL bên 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 Dynamic mã được sử dụng mục thư viện (để được tái sử dụng được). Những gì tôi có nghĩa là, có lẽ 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 Comments 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ó tiếng 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 một tập tin mà BAO GỒM có thể được kéo ở nơi nào bạn muốn nó vào 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à đưa nó vào trong một tập tin XSL? Dưới đây là như thế nào ...

Chỉ cần để làm cho mọi việc rõ ràng ... đây là danh sách những file 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ẽ 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 dữ liệu vetetables

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 (393 tải)


get ExpressingIT News by Email Theo dõi ExpressingIT bằng 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 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 ...

Các XML mẫu mà chúng ta 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 Attribute 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ẽ trông 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>

Kết quả HTML sẽ trông 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 (393 tải)



Thêm 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 bằng Email hoặc Theo tôi trên Twitter


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