Sobes.tech
Junior

Ի՞նչ է XSLT-ը։

sobes.tech AI

Պատասխան AI-ից

XSLT (eXtensible Stylesheet Language Transformations) — XML-դոկումենտների փոխակերպման լեզու։ Օգտագործվում է XML- ի փոխակերպման համար այլ ձևաչափերի, օրինակ՝ HTML, այլ XML կամ պարզ տեքստ, կիրառելով XSLT ոճային աղյուսակում նկարագրված կանոնները:

Հիմնական հասկացությունները՝

  • XSLT ոճային աղյուսակ: XML-դոկումենտ, որը պարունակում է փոխակերպման կանոններ:
  • Թեմաներ (Templates): հիմնական կանոնների բլոկներ։ Դրանք համընկնում են սկզբնական XML-ի տարրերին կամ հատկանիշներին և որոշում, թե ինչպես փոխարկել դրանք:
  • XPATH: Հարցման լեզու XML- ի հանգույցների ընտրության համար։ Օգտագործվում է XSLT-ում՝ որոշելու, որ մասերին կիրառել կանոնները:
  • XSLT պրոցեսոր: Ծրագիր, որը իրականացնում է փոխակերպումը՝ կարդալով սկզբնական XML-ը և XSLT ոճային աղյուսակը, և արտադրելով արդյունքը:

Java-ն ունի ներքին աջակցություն XSLT-ի համար՝ JAXP (Java API for XML Processing) միջոցով:

Օրինակ՝ XML- ի պարզ փոխակերպում HTML- ի՝ XSLT- ի միջոցով:

Արդյունքային XML:

<գրքեր>
  <գիրք id="1">
    <անվանում>Մաստեր և Մարգարիտա</անվանում>
    <հեղինակ>Բուլգակով Մ.</հեղինակ>
  </գիրք>
  <գիրք id="2">
    <անվանում>Պատերազմ և խաղաղություն</անվանում>
    <հեղինակ>Թոլստոյ Լ.</հեղինակ>
  </գիրք>
</գրքեր>

XSLT ոճային աղյուսակ (օրինակ՝ գիրք.xsl):

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/գրքեր">
    <html>
      <head>
        <title>գրքերի ցանկ</title>
      </head>
      <body>
        <h1>գրքերի ցանկ</h1>
        <ul>
          <xsl:apply-templates select="գիրք"/>
        </ul>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="գիրք">
    <li>
      <b><xsl:value-of select="անվանում"/></b>, Հեղինակ: <xsl:value-of select="հեղինակ"/>
    </li>
  </xsl:template>
</xsl:stylesheet>

Java կոդ՝ փոխակերպումը իրականացնելիս՝ օգտագործելով JAXP:

import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import java.io.*;

public class XSLTExample {

    public static void main(String[] args) {
        try {
            // Ստեղծել TransformerFactory
            TransformerFactory factory = TransformerFactory.newInstance();

            // Լիցենզավորում XSLT ոճային աղյուսակը
            Source xslt = new StreamSource(new File("գիրք.xsl"));
            Transformer transformer = factory.newTransformer(xslt);

            // Լիցենզավորում սկզբնական XML-ը
            Source xml = new StreamSource(new File("գրքեր.xml"));

            // Արտած արդյունքի հոսք
            Result result = new StreamResult(new File("output.html"));

            // Կատարել փոխակերպումը
            transformer.transform(xml, result);

            System.out.println("Փոխակերպումը ավարտվեց։ Արդյունքը պահպանվել է output.html ֆայլում։");

        } catch (TransformerConfigurationException e) {
            e.printStackTrace();
        } catch (TransformerException e) {
            e.printStackTrace();
        }
    }
}

XSLT լայնորեն օգտագործվում է վեբ զարգացման մեջ՝ HTML գեներացիա XML-ից, տվյալների ինտեգրում և XML հաղորդագրությունների մշակման համար։