Junior
XSLT чист?
sobes.tech AI
Ҷавоб аз AI
XSLT (eXtensible Stylesheet Language Transformations) — забони тағйир додани ҳуҷҷатҳои XML. Барои табдил додани XML ба форматҳои дигар, масалан, HTML, XML-и дигар ё матни оддӣ, бо истифода аз қоидаҳое, ки дар ҷадвали услуби XSLT тавсиф шудаанд, истифода мешавад.
Концепсияҳои асосӣ:
- Ҷадвали услуби XSLT: Докумиенти XML, ки қоидаҳои табдилро дар бар мегирад.
- Шаблонҳо (Templates): Блокҳои асосии қоидаҳо. Онҳо элементҳо ё атрибутҳои XML-и манбаъро мувофиқат мекунанд ва муайян мекунанд, ки чӣ гуна онҳоро табдил додан.
- XPATH: Забон барои дархостҳо барои интихоби нуқтаҳо дар ҳуҷҷати XML. Дар XSLT барои муайян кардани қисмҳои XML, ки ба онҳо қоидаҳоро татбиқ кардан лозим аст, истифода мешавад.
- Процессори 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 васеъ истифода мешавад.