XML ডেটা ট্রান্সফর্মেশন এর জন্য XSLT এর ব্যবহার

XSLT (Extensible Stylesheet Language Transformations) - জাভা এক্সএমএল (Java XML) - Java Technologies

308

Java তে XML ডেটা ট্রান্সফর্মেশন করতে XSLT (Extensible Stylesheet Language Transformations) ব্যবহার করা হয়। XSLT একটি ভাষা যা XML ডকুমেন্টকে বিভিন্ন ফরম্যাটে রূপান্তরিত করতে সাহায্য করে, যেমন HTML, টেক্সট, বা অন্য XML ফরম্যাট। Java তে XSLT ট্রান্সফর্মেশন ব্যবহারের জন্য একটি শক্তিশালী API প্রদান করা হয়েছে, যা XML ডেটাকে সহজেই প্রক্রিয়াজাত করতে সাহায্য করে।

XSLT এর ব্যবহার Java তে:

Java তে XSLT ব্যবহার করার জন্য মূলত Transformer ক্লাসটি ব্যবহৃত হয়, যা javax.xml.transform প্যাকেজের অংশ। এখানে XML ডেটাকে XSLT স্টাইলশীটের মাধ্যমে রূপান্তর করা হয়।

XSLT ট্রান্সফর্মেশন করতে সাধারণত এই পদক্ষেপগুলি অনুসরণ করা হয়:

  1. XML ডকুমেন্ট এবং XSLT স্টাইলশীট লোড করা
  2. XSLT স্টাইলশীট প্রক্রিয়াজাত করা
  3. XML ডকুমেন্টকে XSLT স্টাইলশীটের মাধ্যমে রূপান্তর করা

উদাহরণ:

ধরা যাক, আমাদের একটি XML ডকুমেন্ট আছে যা প্রোডাক্টের তথ্য ধারণ করে এবং আমরা এটি HTML ফরম্যাটে রূপান্তর করতে চাই।

1. XML ডকুমেন্ট (input.xml)

<products>
    <product>
        <name>Smartphone</name>
        <price>500</price>
    </product>
    <product>
        <name>Laptop</name>
        <price>1000</price>
    </product>
</products>

2. XSLT স্টাইলশীট (style.xsl)

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                version="1.0">

    <xsl:template match="/">
        <html>
            <body>
                <h2>Product List</h2>
                <table border="1">
                    <tr>
                        <th>Name</th>
                        <th>Price</th>
                    </tr>
                    <xsl:for-each select="products/product">
                        <tr>
                            <td><xsl:value-of select="name"/></td>
                            <td><xsl:value-of select="price"/></td>
                        </tr>
                    </xsl:for-each>
                </table>
            </body>
        </html>
    </xsl:template>

</xsl:stylesheet>

3. Java কোড (XSLT Transformation)

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

public class XSLTExample {
    public static void main(String[] args) throws Exception {
        // XML ডকুমেন্ট এবং XSLT স্টাইলশীট লোড করা
        File xmlFile = new File("input.xml");
        File xslFile = new File("style.xsl");

        // XSLT স্টাইলশীট এবং XML ডকুমেন্ট প্রক্রিয়াজাত করা
        StreamSource xmlSource = new StreamSource(xmlFile);
        StreamSource xslSource = new StreamSource(xslFile);

        // ট্রান্সফর্মার তৈরি
        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = transformerFactory.newTransformer(xslSource);

        // আউটপুট ফাইল নির্ধারণ
        StreamResult result = new StreamResult(new File("output.html"));

        // XML ডকুমেন্টকে XSLT স্টাইলশীট দিয়ে রূপান্তর করা
        transformer.transform(xmlSource, result);

        System.out.println("Transformation complete. Check the output.html file.");
    }
}

ব্যাখ্যা:

  1. StreamSource ব্যবহার করে XML এবং XSLT স্টাইলশীট ফাইলগুলি লোড করা হয়।
  2. TransformerFactory থেকে একটি ট্রান্সফর্মার তৈরি করা হয়।
  3. transform মেথড ব্যবহার করে XML ডেটাকে XSLT স্টাইলশীটের মাধ্যমে রূপান্তরিত করা হয়।
  4. আউটপুটটি একটি HTML ফাইল হিসেবে সংরক্ষিত হয়।

আউটপুট (output.html):

<html>
    <body>
        <h2>Product List</h2>
        <table border="1">
            <tr>
                <th>Name</th>
                <th>Price</th>
            </tr>
            <tr>
                <td>Smartphone</td>
                <td>500</td>
            </tr>
            <tr>
                <td>Laptop</td>
                <td>1000</td>
            </tr>
        </table>
    </body>
</html>

এভাবে Java তে XSLT ব্যবহার করে XML ডেটা ট্রান্সফর্মেশন করা যায়। XSLT স্টাইলশীট দিয়ে XML ডেটাকে বিভিন্ন ফরম্যাটে রূপান্তরিত করা সম্ভব হয়, যেমন HTML, CSV, PDF, বা অন্য কোনো XML ফরম্যাট।

Content added By
Promotion

Are you sure to start over?

Loading...