2008 4 สิงหาคม 2008
ผมมีปัญหา strage นี้ในขณะที่การสร้าง XSL เมื่อวานนี้ มองหาคำตอบตลอดสุทธิ, แต่ couldnt พบใด ๆ .... ที่จริงฉันเดา! ฉันอาศัยทราบว่าปัญหาของฉันคือเพื่อให้ฉันทำในสิ่งที่มองหา?
ต่อไป! ในกรณีที่คุณมีปัญหานี้เหมือนกันมากเกินไปและอย่างใดโดยอำนาจของแรงที่คุณมีการจัดการที่ดินในหน้านี้ ... คุณจะขอบคุณฉันตัน ... และถ้าคุณมีที่ดิน accidently ในหน้านี้สำหรับชะตากรรมบางอย่างแปลกและคุณเกิดขึ้นเป็น นักพัฒนา XSL, DO จดบันทึกนี้ตอนนี้สำหรับสาเหตุอนาคตถ้าวันหนึ่งคุณต้องเผชิญกับปัญหานี้แล้ว FORCE อาจจะไม่ได้อยู่กับคุณ
งบปัญหา:
ฉันมี XML นี้ซึ่งมีสองโหนดกับหลายรายการในนั้นและรายการระหว่างทั้งสองโหนดจะมี 1-1 จดหมาย ในตัวอย่างด้านล่างรายการในแต่ละโหนด <array name="PLAYURL" /> เกี่ยวข้อง (ตำแหน่งตรงกัน) ไปยังรายการใน <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>
ตอนนี้ฉันมีห่วงที่ฉันห่วงผ่าน <array name="SITENAME"> และฉันต้องการที่จะได้รับรายการที่เกี่ยวข้องกัน (ในตำแหน่งที่สอดคล้องกัน) ใน <array name="PLAYURL">,
สิ่งที่คุณ normaly จะพยายามทำคือ ...
<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!! นี้ทำงานเคยชิน ... Ah! Surpised ...
ตอนนี้คุณอาจจะต้องการที่จะลองอะไรเช่นนี้ ...
<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>
และอีกครั้งนี้ทำงานเคยชิน ... ตอนนี้คุณเกาหัวของคุณพยายามที่จะติดต่อทุกคนที่คุณคิดว่า XSL บางและอาจจะมีการช่วยเหลือใด ๆ ... คุณพยายามทุกตัวเลือกอื่น ๆ ... และก็ยังจะทำงานเคยชิน ... ดี! Thats สิ่งที่เกิดขึ้นกับฉัน ... atleast
Dont สิ้นหวัง! ลองนี้
<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>
อย่าถามฉันว่าทำไมการทำงาน สาเหตุผมมีเหตุผลที่ถูกต้อง ... ถ้าคุณทำ! กรุณาอย่าวางแสดงความคิดเห็น มันอาจจะมีประโยชน์สวย นอกจากนี้! ถ้าคุณมีชื่อที่ดีกว่าสำหรับการโพสต์นี้ทำวางฉันบรรทัด 
ความเห็นยังไม่มี | แท็ก: XSL , Quirks XSL , XSLT | โพสต์ใน XSL
2008 2 สิงหาคม 2008
สัปดาห์ที่แล้วผมได้สร้างรูปแบบ HTML / CSS progessive สำหรับลูกค้า, การทดสอบใน IE6, IE7 และ FF 3, ประจักษ์สมบูรณ์ดี ... จนกระทั่ง! เค้าโครงไปต่อไปลงวงจร manufacting มันล้มเหลว องค์ประกอบเค้าโครงหน้าเพิ่งไปทั่วทุกสถานที่เมื่อรูปแบบ HTML ได้แปลงเป็น XSL และ XML นำไปใช้กับมัน ... ว้า!!
นอนไม่หลับแล้วมากกว่าวันหยุดสุดสัปดาห์ในความคาดหมายของเช้าวันจันทร์เมื่อฉันจะต้องแก้ไข SH นี้ ** แต่ตอนนี้มี experince เล็กน้อยในการจัดการกับชนิดนี้สถานการณ์ (Quirks เบราว์เซอร์ที่ผมหมายถึง), ฉันรู้มันได้จะทำอย่างไรกับอะไรอย่างอื่น แต่ DOCTYPE .... และมันคือ ...
ปัญหา:
คุณต้องการควบคุมมากกว่า DOCTYPE เนื่องจากการเปลี่ยนแปลงของคุณจะมี DOCTYPE เริ่มต้นอย่างชัดเจนและรูปแบบที่คุณจะออกโยน
โซลูชัน:
XSLT รายละเอียด วิธีการให้ออกไปตั้ง DOCTYPE จาก choise นอกจากนี้สำหรับเรานักพัฒนา UI, หัวข้อที่น่าสนใจจะเป็น วิธีการแสดงผล HTML และ วิธีการส่งออก XML .
ดี! ก่อนที่คุณจะได้รับเบื่อที่นี่คือการแก้ไข
สำหรับเช่นถ้าคุณมี DOCTYPE ต่อไปนี้ในรูปแบบ HTML ของคุณ:. -
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
จากนั้นใน XSL คุณจะต้องมีดังต่อไปนี้: -
<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" />
และในที่สุด! ไม่แน่ใจว่าเอาท์พุท XSLT ของคุณเชื่อฟัง DOCTYPE คุณได้เลือกไว้
1 ความคิดเห็น | Tags: Quirks เบราว์เซอร์ , Doctype , XML , XSL | โพสต์ใน XSL
2008 4 พฤษภาคม 2008
หาก XML / XSL แปลงเป็น domian ของคุณแล้วมีเวลาเมื่อเราต้องการชิ้นส่วนของรหัสแบบไดนามิกที่จะใช้รายการที่ห้องสมุด (ที่จะทำใหม่ใช้งาน) สิ่งที่ฉันหมายความอาจอาจจะทำให้ชัดเจนมากขึ้นกับสถานการณ์เช่นนี้
ลองนึกภาพคุณกำลังสร้างเว็บไซต์ (และใช้ XML, XSL transfroms ofcourse) และมากที่สุดของหน้าเว็บจะมีโมดูลความเห็น ดี! แล้วทั้งคุณคัดลอกหรือวางรหัสนี้เป็นแม่แบบในทุกหน้า (ซึ่งผมได้ขอพูด แต่ทำให้การบำรุงรักษาและการทำงานซ้ำฝันร้าย) หรือดียิ่งขึ้นคุณจะสร้างแฟ้มรวมซึ่งอาจจะทำลายในที่ที่คุณต้องการได้ในหน้าเว็บของคุณ ( s) ...
ดังนั้นเราจะสร้างไฟล์ XSL รวมถึงวิธีการและรวมไว้ภายในไฟล์อื่น XSL? นี่คือวิธีการ ...
เพียงเพื่อให้สิ่งที่ชัดเจน ... นี่คือรายการที่รวดเร็วของไฟล์ที่คุณจะสร้าง ... ที่นี่เราจะรวมถึงข้อมูลเกี่ยวกับผักและผลไม้ลงไปในเพจระดับบนที่เรียกว่าอาหาร
1 food.xml - XML แฟ้มข้อมูลที่เปลี่ยนแปลงจะถูกนำไปใช้
2 food.xsl - ไฟล์ XSL หลักซึ่งจะเปลี่ยน food.xml ของเรา
3 inc_fruits.xsl - XSL รวมไฟล์ที่จะแสดงข้อมูลผลไม้
4 inc_vegtables.xsl - XSL รวมไฟล์ที่จะแสดงผลข้อมูล vetetables
ฉันไม่คิดว่าฉันมีอธิบายมากรหัสสำหรับองค์ประกอบข้างต้นจะเป็นตัวอธิบาย ...
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>
ดาวน์โหลดไฟล์ทั้งหมดข้างต้นที่นี่ (252 ดาวน์โหลด)
ความเห็นยังไม่มี | Tags: สอน , XML , XSL , XSL รวม , XSLT | โพสต์ใน XSL
2008 4 เมษายน 2008
หากคุณใช้ XML และ XSL แล้วคุณอาจได้เจอเวลาเมื่อคุณต้องเล่นรอบที่มีคุณลักษณะและค่าของโหนด XML ในคุณ XSL พวกเขาจะโหลดของเว็บไซต์ที่มีข้อมูลการยืดยาวเกี่ยวกับเรื่องนี้ แต่ไม่มีผู้ใดผมพบว่ามีช่วงสั้น ๆ และแม่นยำ ... นี้ไม่มีสอน XML / XSL แต่ความพยายามของฉันที่จะนำร่วมกันจัดเรียงของรายการโกงบางส่วน ...
ตัวอย่าง XML ที่เราจะทำงานร่วมกับมีลักษณะเช่นนี้ ...
<?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>
เพื่อช่วยให้เริ่มต้นการเปลี่ยนแปลงข้างต้น XML ของเราโดยใช้ XSL
ตัวอย่างที่ 1: แสดงค่าที่เลือกแอตทริบิวต์
<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 จะมีลักษณะเช่น
Orange is the color and rich in vitamin C,
to get more information about <a href="http://www.orange.com" target="new">
ตัวอย่างที่ 2: looping ผ่านและแสดงชื่อแอตทริบิวต์ทั้งหมด XML และคุ้มที่สุดของพวกเขา
<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 จะมีลักษณะเช่น
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
ดาวน์โหลดไฟล์ทั้งหมดข้างต้นที่นี่ (245 ดาวน์โหลด)
ดูพื้นที่นี้ฉันจะให้การปรับปรุงนี้มีการค้นพบใหม่ ...
ความเห็นยังไม่มี | Tags: สอน , XML , XML คุณสมบัติ , XSL , XSLT | โพสต์ใน XSL