מבנה XSL

4.1.1 מבנה דף העיצוב
4.1.2 תבניות
4.1.3 Xpath

4.1.1 מבנה דף העיצוב

רוב הדפים עומדים לבדם ואלמנט השורש הוא

 
<xsl:transform>

או
<xsl:stylesheet>

דפי העיצוב של XSL הם מסמכי XML

דפים בסיסיים :

דוגמה אחת :

<xsl:stylesheet xmlns:xsl=http://www.w3.org/1999/XSL/Transform version = 1.0">
some code...
</xsl:stylesheet>

דוגמה נוספת :

<xsl:transform xmlns:xsl=http://www.w3.org/1999/XSL/Transform version = 1.0">
some code
</xsl:transform>

ב-IE5 יש להחליף את השורה הראשונה ב :
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

 

דוגמה

בדוגמה להלן para ו -emphasis מוחלפים באלמנטים של html המתאימים:

מסמך ה -xsl

<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="para">
   <p>
      <xsl:apply-templates/>
   </p>
</xsl:template>
<xsl:template match="emphasis">
    <i>
      <xsl:apply-templates/>
   </i>
</xsl:template>
</xsl:stylesheet>

מסמך זה יהפוך את מסמך ה - XML הב

<xml version="1.0'?>
<para>This is a <emphasis > test </emphasis>.</para>

ל-

<xml version="1.0'?>
<p>This is a <i>test</i>.</p>

4.1.2 תבניות

רוב התבניות באות במתכונת הבאה:

<xsl:template match="emphasis">
   <i>
      <xsl:apply-templates/>
   </i>
</xsl:template>

כל מה שבין התג <xsl:template> ובין תג הסיום </xsl:template> הוא תבנית .

מה שמופיע תחת match קובע את התבנית שאנו מחפשים

4.1.3 Xpath

XSLT משתמשת ב -Xpath לאיתור החלקים במסמך אשר תואמים לתבנית.

Xpath משתמשת בתבנית דומה לזה של directory/file.

חשוב לזכור ... התאמת תבניות הן בהתאם להקשר , אותה תבנית יכולה לתת תוצאות שונות בהקשרים שונים.

ביטוי Xpath הוא חמדן , כלומר הוא ינסה להתאים את מקסימום החלקים.

דוגמאות לתבניות של XPath

- name מוצא את כל האלמנטים הבנים <name>

- computer/processor מוצא את כל האלמנטים processor שההורה שלהם הוא computer

compu מוצא את כל האלמנטים processor שהם צאצאים של computer (לאו דוקא- er//processor ישירים)

- title// מוצא את כל האלמנטים title בכל המסמך כולו

- section/para[1] מוצא את האלמנט para הראשון שהוא בן של section בהקשר הנוכחי.

- / אלמנט השורש

.- title// מוצא את כל האלמנטים title שהם צאצאים בהקשר הנוכחי

/ כל אלמנטים element2 שהם נכדים של element1 בהקשר הנוכחי/lement2 /*/element1

- computer[@type] כל האלמנטים computer אשר יש להם מאפיין type

- computer[@type="personal"] כל האלמנטים computer אשר יש להם מאפיין type עם ערך personal

element2 |element1 מוצא את element1 ו\או element2

התבניות של Xpath הן אבסולוטיות אם הן מתחילות ב - '/' ויחסיות אחרת

 

הקדמה
עבודה עם XSL