180 likes | 303 Views
Programowanie w Internecie 2 Ćwiczenie 4 – Transformacja danych. Prowadzący: Rajmund Pączkowski. Tematyka. Integracja danych XML Język XPath – wyszukiwanie danych w dokumentach Technologia XSLT – transformacje dokumentów XMLowych. XPath. 2008-03-16. Mgr inż. Michał Jaros. 3.
E N D
Programowanie w Internecie 2Ćwiczenie 4 – Transformacja danych Prowadzący: Rajmund Pączkowski
Tematyka • Integracja danych XML • Język XPath – wyszukiwanie danych w dokumentach • Technologia XSLT – transformacje dokumentów XMLowych
XPath 2008-03-16 Mgr inż. Michał Jaros 3 XPath jest to język służący do odnajdywania informacji wewnątrz plików XML. XPath stanowi podstawę dla technologii: • XSLT; • XQuery; • XPointer; • XLink;
XPath • <bookstore> • <booklang="en”> • <title>Harry Potter</title> • <author>J K. Rowling</author> • <year>2005</year> • <price>29.99</price> • </book> • </bookstore> 2008-03-16 Mgr inż. Michał Jaros 4 Podstawowe pojęcia • Węzeł – dokument, element, atrybut; • Rodzic; • Dzieci; • Rodzeństwo; • Przodek; • Potomek;
XPath • <bookstore> • <booklang="en”> • <title>Harry Potter</title> • <author>J K. Rowling</author> • <year>2005</year> • <price>29.99</price> • </book> • </bookstore> 2008-03-16 Mgr inż. Michał Jaros 5 XPath – ścieżka do danych • nazwa_węzła • bookstore • / • /bookstore • bookstore/book • // • //book • bookstore//book
XPath • <bookstore> • <booklang="en”> • <title>Harry Potter</title> • <author>J K. Rowling</author> • <year>2005</year> • <price>29.99</price> • </book> • </bookstore> 2008-03-16 Mgr inż. Michał Jaros 6 • . • ./title • .. • ../price • @ • //@lang
XPath • <bookstore> • <book lang="en”> • <title>Harry Potter</title> • <author>J K. Rowling</author> • <year>2005</year> • <price>29.99</price> • </book> • </bookstore> 2008-03-16 Mgr inż. Michał Jaros 7 • [] • /bookstore/book[1] • /bookstore/book[last()-1] • /bookstore/book[position() < 4] • //book[@lang] • //book[@lang=‘en’] • /bookstore/book[price < 30.00]/title
XPath 2008-03-16 Mgr inż. Michał Jaros 8 • * • /bookstore/* • //* • @* • //book/@* • node() • //book/node()
XPath • <bookstore> • <book lang="en”> • <title>Harry Potter</title> • <author>J K. Rowling</author> • <year>2005</year> • <price>29.99</price> • </book> • </bookstore> 2008-03-16 Mgr inż. Michał Jaros 9 • | • //book/title | //book/price • //title | //price • /bookstore/book/title | //price
XML – przestrzenie nazw 2008-03-16 Mgr inż. Michał Jaros 11 <root> <h:table xmlns:h="http://www.w3.org/TR/html4/"> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> </h:table> <f:table xmlns:f="http://www.w3schools.com/furniture"> <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table> </root>
XSLT 2008-03-16 Mgr inż. Michał Jaros 12 EXtensible Stylesheet Language Transformations XSLT – język przekształcający XML’a do XHTML’a lub innego XML’a. Wsparcie przeglądarek: • Mozilla Firefox – v 1.0.2 • Netscape – v 8 • Opera – v 9 • Internet Explorer – v 6
XSLT 2008-03-16 Mgr inż. Michał Jaros 13 Dodanie XSLT do pliku XML <?xml-stylesheet href="nazwa_pliku.xsl” type="text/xsl” ?> Główny element (korzeń) pliku XSL <xsl:stylesheet version="1.0” xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> </xsl:stylesheet>
XSLT 2008-03-16 Mgr inż. Michał Jaros 14 <xsl:template match="wyrażenie XPath"> <!-- strona (X)HTML --> <html xmlns="http://www.w3.org/1999/xhtml"> <body> Treść strony </body> </html> </xsl:template>
XSLT 2008-03-16 Mgr inż. Michał Jaros 15 <xsl:value-of select="wyrażenie XPath" /> <xsl:for-each select="wyrażenie XPath"> <!-- instrukcje --></xsl:for-each> <xsl:sort select="wyrażenie XPath" /> <xsl:if test="wyrażenie"> <!-- instrukcje --></xsl:if>
XSLT 2008-03-16 Mgr inż. Michał Jaros 16 <xsl:choose> <xsl:when test="wyrażenie"> <!-- instrukcje --> </xsl:when> <xsl:otherwise> <!-- instrukcje --> </xsl:otherwise></xsl:choose>
XSLT • <xsl:template match="/"> • <html> • <body> • <h2>My CD Collection</h2> • <xsl:apply-templates/> • </body> • </html> • </xsl:template> <xsl:template match="cd"> <p> <xsl:apply-templates select="title"/> <xsl:apply-templates select="artist"/> </p> </xsl:template> 2008-03-16 Mgr inż. Michał Jaros 17 <xsl:apply-templates /> <xsl:apply-templates select="wyrażenie XPath" />