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.


2008 4 tháng 5 năm 2008

Bao gồm XSL bên trong XSL

Nếu XML / XSL Transforms là domian bạn, sau đó có lần khi chúng tôi muốn có một mảnh mã năng động để được sử dụng mục thư viện (được thực hiện tái sử dụng được). 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 một trang web (và sử dụng XML, XSL transfroms ofcourse) và hầu hết các trang sẽ có một Module Bình luận. 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 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 file INCLUDE có thể được kéo vào có bao giờ bạn muốn nó trong trang của bạn ( s) ...
Vì vậy, LÀM THẾ NÀO ĐỂ CHÚNG TÔI TẠO tập tin XSL INCLUDE và bao gồm nó bên trong một tập tin XSL? Dưới đây là làm thế nào ...

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

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

Tôi không nghĩ rằng tôi có giải thích nhiều, các mã 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 (253 tải)


2008 04 Tháng 4 2008

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

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 phải 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 với thông tin về điều này hơi dài, nhưng không có tôi thấy ngắn gọn và chính xác ... Đây là NO Tutorial XML / XSL, nhưng cố gắng của tôi để đặt cùng một số loại danh sách cheat ...

Các mẫu XML mà chúng tôi sẽ làm việc với trông 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, bạn bắt đầu chuyển đổi của chúng tôi trên XML 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ế

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ên tất cả các 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>

HTML kết quả sẽ như thế


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



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


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