1 / 20

XSLT

XSLT. مرتضى منتظرى دانشگاه تهران. XSLT. Extensible Stylesheet Language Transformations تبديل مستندات XML به انواع ديگر مستندات مانند HTML ,Text,XML XSLT از دو فايل استفاده مي كند: فايل XML كه شامل داده هاي XML است

hiroko
Télécharger la présentation

XSLT

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XSLT مرتضى منتظرى دانشگاه تهران

  2. XSLT • Extensible Stylesheet Language Transformations • تبديل مستندات XML به انواع ديگر مستندات مانندHTML ,Text,XML • XSLT از دو فايل استفاده مي كند: • فايل XML كه شامل داده هاي XML است • فايل XSL كه در آن دستورات XSLT براي تبديل فايل XML قرار گرفته است

  3. مثال ساده • فايل data.xml: • <?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="render.xsl"?><message>Howdy!</message> • فايل render.xsl: • <?xml version="1.0"?><xsl:stylesheet version="1.0”xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="/"><html><body><h1><xsl:value-of select="message"/></h1></body></html> </xsl:template></xsl:stylesheet

  4. فايل .XSL • هر فايل XSLT داراي پسوند XSL است • يك سند XSLT • شروع ميشود با: • <?xml version="1.0"?> • <xsl:stylesheet version="1.0"xmlns:xsl="http://www.w3.org/1999/ XSL/Transform"> • شامل يك يا بيشتر template است: <xsl:template match="/"> ... </xsl:template> • در پايان: </xsl:stylesheet>

  5. بررسي مثال • قالب <xsl:template match="/">مي گويد: • كل فايل XML را انتخاب كن • دستور <xsl:value-of select="message"/> مي گويد: • از فايل انتخاب شده مقدار نود message را برگردان • در اينجا ميتوان به جاي message از هر يك از دستورات xpath زير استفاده كرد: • ./message • /message/text() • ./message/text()

  6. مراحل تبديل در مثال قبل • <xsl:template match="/"><html><body> <h1><xsl:value-of select="message"/></h1> </body></html> • </xsl:template> فايلXSL <?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="render.xsl"?><message>Howdy!</message> فايل XML

  7. مراحل تبديل در مثال قبل • <xsl:template match="/"><html><body> <h1><xsl:value-of select="message"/></h1> </body></html> • </xsl:template> فايلXSL <?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="render.xsl"?><message>Howdy!</message> فايل XML خروجي <html><body>

  8. مراحل تبديل در مثال قبل • <xsl:template match="/"><html><body><h1><xsl:value-of select="message"/></h1> </body></html> • </xsl:template> فايلXSL <?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="render.xsl"?><message>Howdy!</message> فايل XML خروجي <html><body> <h1>Howdy!</h1>

  9. مراحل تبديل در مثال قبل • <xsl:template match="/"><html><body><h1><xsl:value-of select="message"/></h1></body></html> • </xsl:template> فايلXSL <?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="render.xsl"?><message>Howdy!</message> فايل XML خروجي <html><body> <h1>Howdy!</h1> </body></html>

  10. عملگرهاي XSLT • Xsl:value-of • Xsl:for-each • Xsl:if • Xsl:choose • Xsl:sort

  11. Xsl:value-of <xsl:value-of select="XPath expression"/> • خصيصه select براي اين عملگر لازم است • اين عملگر محتويات المنت مشخص شده با عبارت Xpath را در خروجي قرار ميدهد

  12. xsl:for-each • اين عملگر همان حلقه زبانهاي برنامه نويسي است • نحو اين عملگر به اين صورت است: <xsl:for-each select="XPath expression">Text to insert and rules to apply </xsl:for-each> • مثلا براي نمايش عنوان تمام كتابهاي موجود در فايل XML ميتوان نوشت: <xsl:for-each select=“//book"> <xsl:value-of select="title"/> </xsl:for-each>

  13. xsl:if • همان عملگر شرطي زبانهاي برنامه نويسي است • نحو اين عملگر به صورت زير است: <xsl:if test=“عبارت شرطي مورد نظر"> Text to insert and rules to apply </xsl:if> • مثال:عنوان كتابهايي كه نويسنده آنها Terry است نمايش دهيد: <xsl:for-each select="//book"> <xsl:if test="author='Terry'"> <xsl:value-of select="title"/> </xsl:if> </xsl:for-each>

  14. xsl:choose • معادل دستور switch در زبان C ميباشد • نحو اين عملگر به اين صورت است: <xsl:choose> <xsl:when test="some condition">... some code ... </xsl:when> <xsl:otherwise>... some code ... </xsl:otherwise></xsl:choose>

  15. xsl:sort • اين عملگر به همراه xsl:for-each به كار ميرود • خصيصه select اين عملگرمشخص ميكند بر اساس چه فيلدي عمل sort انجام شود • مثال:عنوان همه كتابها به ترتيب نويسندگان <xsl:for-each select="//book"> <xsl:sort select="author"/> <xsl:value-of select="title"/></xsl:for-each>

  16. افزودن tag • فرض كنيد سند xml شامل عبارات زير باشد: <name>Dr. Dave's Home Page</name><url>http://www.cis.upenn.edu/~matuszek</url> • و ما بخواهيم آنرا به tag زير تبديل كنيم: <a href=http://www.cis.upenn.edu/~matuszek>Dr. Dave's Home Page</a> • براي اين كار دو راه وجود دارد: • استفاده از دستور <xsl:attribute name="..."> • استفاده از براكت

  17. افزودن tag • استفاده از دستور <xsl:attribute name="..."> <a> <xsl:attribute name="href"><xsl:value-of select="url"/> </xsl:attribute><xsl:value-of select="name"/> </a> • استفاده از براكت <a href="{url}"> <xsl:value-of select="name"/> </a>

  18. template هاي نامدار • ميتوان براي template ها نام در نظر گرفت و به صورت تابع فراخواني كرد • Template نامدار: <xsl:template name="myTemplateName">...body of template… </xsl:template> • فراخواني template: <xsl:call-template name="myTemplateName"/> • يا <xsl:call-template name="myTemplateName">...parameters... </xsl:call-template>

  19. مثال Template: <xsl:template name=“BookInfo"> <xsl:param name=“title"/> <xsl:param name=“author"/> <xsl:value-of select=$title /> By <xsl:value-of select=$author /> </xsl:template> Call: <xsl:for-each select=“//book”> <xsl:call-template name=“BookInfo”> <xsl:with-param name=“title” select=“//title” /> <xsl:with-param name=“author” select=“//author” /> </xsl:call-template> </xsl:for-each>

  20. Thank You

More Related