XPath (XML Path Language)

Java Technologies - জাভা এক্সএমএল (Java XML)
131
131

XPath (XML Path Language) হলো একটি ভাষা যা XML ডকুমেন্টের মধ্যে উপাদান এবং ডেটা অনুসন্ধান করতে ব্যবহৃত হয়। এটি XML ডকুমেন্টের মধ্যে নির্দিষ্ট উপাদান, অ্যাট্রিবিউট বা মান বের করতে সাহায্য করে এবং এটি XML ডেটাকে কার্যকরভাবে ম্যানিপুলেট বা এক্সেস করতে ব্যবহৃত হয়।

XPath এর বৈশিষ্ট্যসমূহ:

  1. XML ডকুমেন্টে নেভিগেশন: XPath XML ডকুমেন্টে উপাদান এবং অ্যাট্রিবিউটের মধ্যে পথ অনুসরণ করতে সক্ষম। XPath ব্যবহার করে আপনি XML ডকুমেন্টের যে কোনও অংশে পৌঁছাতে পারেন।
  2. এলিমেন্ট এবং অ্যাট্রিবিউট নির্বাচন: XPath ডকুমেন্টের নির্দিষ্ট এলিমেন্ট বা অ্যাট্রিবিউট সিলেক্ট করার জন্য পাথ এক্সপ্রেশন ব্যবহার করে। উদাহরণস্বরূপ:
    • /bookstore/book/title : এটি bookstore এলিমেন্টের মধ্যে থাকা book এলিমেন্টের title সাব-এলিমেন্ট নির্বাচন করবে।
  3. বুলিয়ান, সংখ্যা এবং স্ট্রিং ফাংশন: XPath বিভিন্ন ধরণের ফাংশন এবং অপারেটর সমর্থন করে যেমন সংখ্যা গণনা, স্ট্রিং ম্যানিপুলেশন এবং বুলিয়ান পরীক্ষণ।
    • উদাহরণ: contains(title, 'Java') — এটি পরীক্ষা করবে যে title অ্যাট্রিবিউট বা এলিমেন্টে 'Java' শব্দটি আছে কিনা।
  4. বোলিয়ান লজিক: XPath লজিক্যাল অপারেটর যেমন and, or এবং not সমর্থন করে, যা বিভিন্ন শর্ত নির্ধারণের জন্য ব্যবহৃত হয়।
    • উদাহরণ: /bookstore/book[price>35 and price<100] — এটি সমস্ত book এলিমেন্ট নির্বাচন করবে, যেখানে price 35 এর চেয়ে বেশি এবং 100 এর চেয়ে কম।
  5. আবশ্যক উপাদান নির্বাচন: XPath নমুনা সিলেকশন অপারেটর যেমন * (যে কোনো উপাদান), @ (অ্যাট্রিবিউট), [] (ইন্ডেক্স বা শর্ত) ব্যবহার করতে পারে।
    • উদাহরণ: /bookstore/* — এটি bookstore এলিমেন্টের সমস্ত সরাসরি চাইল্ড এলিমেন্ট নির্বাচন করবে।
    • উদাহরণ: /bookstore/book[@category='fiction'] — এটি bookstore এলিমেন্টের মধ্যে category অ্যাট্রিবিউট যেটির মান fiction, এমন সমস্ত book এলিমেন্ট নির্বাচন করবে।
  6. অ্যাবসোলিউট এবং রিলেটিভ পাথ:
    • অ্যাবসোলিউট পাথ: এটি XML ডকুমেন্টের মূল (root) থেকে শুরু হয়। যেমন: /bookstore/book/title
    • রিলেটিভ পাথ: এটি বর্তমান পজিশন থেকে শুরু হয়। যেমন: book/title
  7. কুইরি এবং ম্যানিপুলেশন: XPath এর মাধ্যমে আপনি কুইরি তৈরি করতে এবং XML ডেটাকে ম্যানিপুলেট করতে পারেন।

XPath উদাহরণ:

ধরা যাক আমাদের একটি XML ডকুমেন্ট রয়েছে যা একটি বইয়ের তথ্য রাখে:

<bookstore>
   <book>
      <title lang="en">Learning Java</title>
      <author>John Doe</author>
      <price>50.00</price>
   </book>
   <book>
      <title lang="es">Aprendiendo Java</title>
      <author>Jane Doe</author>
      <price>45.00</price>
   </book>
</bookstore>

XPath Query Examples:

  • /bookstore/book/title — এটি সমস্ত book এলিমেন্টের title সাব-এলিমেন্ট নির্বাচন করবে।
  • /bookstore/book[price>45] — এটি সমস্ত book এলিমেন্ট নির্বাচন করবে যার price 45 এর বেশি।
  • /bookstore/book/title[@lang='en'] — এটি title এলিমেন্ট নির্বাচন করবে যেগুলির lang অ্যাট্রিবিউট en

XPath এবং Java:

Java তে XML ডকুমেন্টের XPath কুইরি করার জন্য javax.xml.xpath প্যাকেজ ব্যবহার করা হয়। এখানে একটি সাধারণ উদাহরণ দেওয়া হলো:

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;

public class XPathExample {
    public static void main(String[] args) throws Exception {
        // XML ডকুমেন্ট লোড করুন
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        Document doc = builder.parse("books.xml");

        // XPath অবজেক্ট তৈরি করুন
        XPath xpath = XPathFactory.newInstance().newXPath();

        // XPath কুইরি রান করুন
        String expression = "/bookstore/book/title";
        NodeList nodeList = (NodeList) xpath.evaluate(expression, doc, XPathConstants.NODESET);

        // ফলাফল প্রদর্শন করুন
        for (int i = 0; i < nodeList.getLength(); i++) {
            System.out.println(nodeList.item(i).getTextContent());
        }
    }
}

এতে books.xml ফাইলের title এলিমেন্টের সকল মান প্রিন্ট হবে।

সারাংশ:

XPath XML ডকুমেন্টের মধ্যে ডেটা অনুসন্ধান এবং এক্সেস করার জন্য একটি শক্তিশালী টুল। এটি XML ডকুমেন্টের বিভিন্ন উপাদান বা অ্যাট্রিবিউটের মধ্যে নির্দিষ্ট ডেটা খুঁজে বের করতে এবং তাদের কার্যকরভাবে ম্যানিপুলেট করতে সাহায্য করে। Java তে XPath ব্যবহার করা সহজ এবং এটি XML ডকুমেন্টের সাথে কাজ করার জন্য একটি অপরিহার্য টুল।

Content added By

XPath কি এবং এর প্রয়োজনীয়তা

42
42

XPath (XML Path Language) হল একটি ভাষা যা XML ডকুমেন্টের ভিতরে থাকা উপাদান, অ্যাট্রিবিউট, বা ডেটা অনুসন্ধান এবং নির্বাচন করার জন্য ব্যবহৃত হয়। XPath XML ডকুমেন্টের মধ্যে বিভিন্ন উপাদান বা ডেটাকে নির্দিষ্ট করার জন্য একটি পথ বা এক্সপ্রেশন প্রদান করে। এটি মূলত XML ডকুমেন্টের মধ্যে বিভিন্ন উপাদান বা তথ্য অনুসন্ধানের জন্য একটি কুয়েরি ভাষা হিসেবে কাজ করে।

XPath এর প্রয়োজনীয়তা:

XPath-এর প্রয়োজনীয়তা অনেক কারণে গুরুত্বপূর্ণ:

  1. XML ডেটা অনুসন্ধান: XPath ব্যবহার করে XML ডকুমেন্টের ভিতরে নির্দিষ্ট উপাদান বা অ্যাট্রিবিউট খুঁজে পাওয়া যায়। উদাহরণস্বরূপ, আপনি যদি একটি XML ডকুমেন্টের মধ্যে নির্দিষ্ট কোন উপাদান বা মান খুঁজে চান, তাহলে XPath আপনাকে সেই ডেটা বের করার জন্য উপযুক্ত পথ (পথ) প্রদান করে।
  2. সহজ এবং দ্রুত ডেটা নির্বাচন: XPath ব্যবহার করে একটি XML ডকুমেন্টের মধ্যে দ্রুত এবং সহজে নির্দিষ্ট ডেটা নির্বাচন করা সম্ভব হয়। এটি আপনাকে ডকুমেন্টের ভিতরের কাঠামো অনুযায়ী এক্সপ্রেশন দিয়ে তথ্য খুঁজতে সাহায্য করে।
  3. ডকুমেন্টের নির্দিষ্ট অংশে কাজ করা: XPath এর মাধ্যমে XML ডকুমেন্টের নির্দিষ্ট অংশে (যেমন, ট্যাগ বা অ্যাট্রিবিউট) কাজ করা যায়, যার ফলে পুরো ডকুমেন্ট পড়তে না হয়ে শুধু প্রয়োজনীয় অংশে মনোযোগ দেওয়া যায়।
  4. XML ট্রান্সফরমেশন (XSLT) এ ব্যবহৃত: XPath সাধারণত XSLT (Extensible Stylesheet Language Transformations) এ ব্যবহৃত হয় XML ডকুমেন্ট ট্রান্সফর্ম করার সময়, যেখানে XML ডকুমেন্ট থেকে নির্দিষ্ট উপাদান বের করে সেগুলোকে অন্য ফরম্যাটে রূপান্তর করা হয়।
  5. ডাইনামিক কুয়েরি তৈরি করা: XPath ব্যবহার করে ডাইনামিক কুয়েরি তৈরি করা সম্ভব, যার মাধ্যমে XML ডকুমেন্টের মধ্যে কিছু পরিবর্তন অনুসারে ডেটা অনুসন্ধান বা নির্বাচন করা যেতে পারে। এটি ডেভেলপমেন্টের সময় XML ডেটা নিয়ে আরও নমনীয়ভাবে কাজ করার সুযোগ সৃষ্টি করে।
  6. XML স্কিমা ভ্যালিডেশন: XPath দিয়ে XML ডকুমেন্টের কাঠামো বা উপাদানের সঠিকতা যাচাই করা সম্ভব। এটি XML ডকুমেন্টের নির্দিষ্ট অংশের মধ্যে খুঁজে বের করা যেতে পারে, এবং সঠিকতা নিশ্চিত করার জন্য ব্যবহার করা হয়।

XPath এর উদাহরণ:

ধরা যাক, আমাদের একটি XML ডকুমেন্ট রয়েছে:

<bookstore>
    <book>
        <title>Java Programming</title>
        <author>John Doe</author>
        <price>29.99</price>
    </book>
    <book>
        <title>Python Programming</title>
        <author>Jane Doe</author>
        <price>19.99</price>
    </book>
</bookstore>

এখন, যদি আপনি book উপাদানটির title খুঁজে পেতে চান, তাহলে XPath এক্সপ্রেশন হবে:

/bookstore/book/title

এটি bookstore এর মধ্যে প্রথম book উপাদানটির title নির্বাচন করবে। আর যদি দ্বিতীয় book এর title পেতে চান, তবে XPath হবে:

/bookstore/book[2]/title

এভাবে XPath বিভিন্ন XML ডকুমেন্টের মধ্যে সহজে তথ্য বের করতে সাহায্য করে।

XPath এর মূল বৈশিষ্ট্যসমূহ:

  • নির্দিষ্ট ডেটা নির্বাচন: XPath দ্বারা XML ডকুমেন্টের নির্দিষ্ট অংশ বা উপাদান নির্বাচন করা যায়।
  • এক্সপ্রেশন ব্যবহার: XPath এক্সপ্রেশন ব্যবহার করে ডেটা নির্বাচন করা সহজ হয়।
  • স্ট্রাকচারাল নেভিগেশন: XML ডকুমেন্টের কাঠামোর মধ্যে নেভিগেট করা সম্ভব হয়।
  • এবং/অথবা অপারেটর ব্যবহার: XPath দুই বা তার বেশি শর্ত একসাথে ব্যবহার করতে পারে (যেমন, and, or অপারেটর)।

সার্বিকভাবে, XPath একটি শক্তিশালী টুল যা XML ডেটার মধ্যে নির্দিষ্ট তথ্য অনুসন্ধান করতে এবং এক্সপ্রেশন ব্যবহার করে সেগুলি নির্বাচন করতে সাহায্য করে, যা XML প্রসেসিং এবং ডেটা ম্যানিপুলেশনকে আরও সহজ ও দ্রুত করে তোলে।

Content added By

XPath এর মাধ্যমে XML ডেটা এক্সট্র্যাকশন

44
44

XPath (XML Path Language) একটি ভাষা যা XML ডকুমেন্টের মধ্যে নির্দিষ্ট উপাদান বা ডেটা এক্সট্র্যাক্ট করতে ব্যবহৃত হয়। XPath ব্যবহার করে আপনি XML ডকুমেন্টের নোডগুলোতে সহজেই অ্যাক্সেস পেতে পারেন এবং নির্দিষ্ট ডেটা নির্বাচন করতে পারেন।

XPath এর বৈশিষ্ট্য:

  • XPath XML ডকুমেন্টের নোডগুলোতে পাথ অনুসরণ করে (যেমন, গাছের শাখার মতো)।
  • এটি XML ডকুমেন্টের বিভিন্ন অংশের মধ্যে সরল, জটিল বা কোড-বেসড কুয়েরি করার জন্য ব্যবহার করা হয়।
  • XPath এক্সপ্রেশন XML ডকুমেন্টের ট্যাগ, অ্যাট্রিবিউট, টেক্সট কন্টেন্ট ইত্যাদি চিহ্নিত করতে ব্যবহৃত হয়।

XPath এর মাধ্যমে XML ডেটা এক্সট্র্যাকশন প্রক্রিয়া:

ধরা যাক, আমাদের একটি XML ডকুমেন্ট রয়েছে:

<employees>
    <employee>
        <id>101</id>
        <name>John Doe</name>
        <role>Software Developer</role>
    </employee>
    <employee>
        <id>102</id>
        <name>Jane Smith</name>
        <role>Project Manager</role>
    </employee>
</employees>

XPath এক্সপ্রেশন উদাহরণ:

  1. সব employee এলিমেন্ট নির্বাচন করা:

    /employees/employee
    

    এই এক্সপ্রেশনটি employees নোডের মধ্যে সমস্ত employee নোড নির্বাচন করবে।

  2. প্রথম employee এর name নির্বাচন করা:

    /employees/employee[1]/name
    

    এটি প্রথম employee এর name এলিমেন্ট নির্বাচন করবে, এবং ফলস্বরূপ "John Doe" দিবে।

  3. সব employee এর নাম নির্বাচন করা:

    /employees/employee/name
    

    এই এক্সপ্রেশনটি সমস্ত employee নোডের name এলিমেন্টগুলো নির্বাচন করবে, এবং ফলস্বরূপ John Doe এবং Jane Smith রিটার্ন করবে।

  4. id এর মান 101 এর জন্য employee নির্বাচন করা:

    /employees/employee[id='101']
    

    এই এক্সপ্রেশনটি সেই employee নোড নির্বাচন করবে যার id 101।

Java তে XPath ব্যবহার করে XML ডেটা এক্সট্র্যাকশন:

Java তে XPath ব্যবহার করার জন্য সাধারণত JAXP লাইব্রেরি ব্যবহার করা হয়। এখানে একটি উদাহরণ দেওয়া হলো:

import javax.xml.parsers.*;
import org.w3c.dom.*;
import javax.xml.xpath.*;

public class XPathExample {
    public static void main(String[] args) throws Exception {
        // XML ডকুমেন্ট লোড করা
        String xml = "<employees><employee><id>101</id><name>John Doe</name><role>Software Developer</role></employee>" +
                     "<employee><id>102</id><name>Jane Smith</name><role>Project Manager</role></employee></employees>";

        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        InputSource inputSource = new InputSource(new java.io.StringReader(xml));
        Document document = builder.parse(inputSource);

        // XPathFactory এবং XPath অবজেক্ট তৈরি করা
        XPathFactory xPathFactory = XPathFactory.newInstance();
        XPath xpath = xPathFactory.newXPath();

        // XPath এক্সপ্রেশন প্রয়োগ করা
        XPathExpression expr = xpath.compile("/employees/employee/name");
        NodeList nodeList = (NodeList) expr.evaluate(document, XPathConstants.NODESET);

        // ফলস্বরূপ প্রিন্ট করা
        for (int i = 0; i < nodeList.getLength(); i++) {
            System.out.println("Employee Name: " + nodeList.item(i).getTextContent());
        }
    }
}

উপরের কোডের ব্যাখ্যা:

  • DocumentBuilder: XML ডকুমেন্ট লোড করতে ব্যবহৃত হয়।
  • XPath: XPath এক্সপ্রেশন কপি এবং XML ডকুমেন্টে এটি প্রয়োগ করা হয়।
  • XPathExpression: XPath এক্সপ্রেশন রূপান্তর করে প্রক্রিয়া শুরু হয়।
  • NodeList: XPath দ্বারা নির্বাচিত XML নোডগুলির তালিকা প্রদান করে।

আউটপুট:

Employee Name: John Doe
Employee Name: Jane Smith

XPath এক্সপ্রেশন সংক্ষেপে:

  • /: রুট এলিমেন্ট নির্বাচন করে।
  • //: যেকোনো স্থানে একটি নোড নির্বাচন করে।
  • []: একটি নির্দিষ্ট শর্ত বা ইনডেক্সের মাধ্যমে এলিমেন্ট নির্বাচন করে।
  • @: একটি অ্যাট্রিবিউট নির্বাচন করে।

এইভাবে Java তে XPath ব্যবহার করে XML ডেটা এক্সট্র্যাকশন করতে পারেন, যা XML ডকুমেন্টের তথ্য পেতে এবং প্রক্রিয়াকরণ করতে অত্যন্ত কার্যকর।

Content added By

XPath Expressions এবং Functions

70
70

Java XML এর মধ্যে XPath Expressions এবং Functions অত্যন্ত গুরুত্বপূর্ণ টুলস যা XML ডকুমেন্ট থেকে ডেটা এক্সট্রাক্ট করতে সাহায্য করে। XPath একটি ভাষা যা XML ডকুমেন্টের বিভিন্ন উপাদান বা অ্যাট্রিবিউটের মান বের করতে ব্যবহৃত হয়। নিচে XPath Expressions এবং Functions সম্পর্কে বিস্তারিত আলোচনা করা হলো:

1. XPath Expressions

XPath Expression একটি কুয়েরি ভাষা যা XML ডকুমেন্টের মধ্যে নির্দিষ্ট উপাদান বা ডেটা বের করতে ব্যবহৃত হয়। এটি XML ডকুমেন্টের মধ্যে নেভিগেট করার জন্য পাথ সিলেকশন ব্যবহার করে। XPath Expression সাধারণত নিম্নলিখিত উপাদানগুলি ব্যবহার করে:

XPath Syntax

  • Node Selection: XPath এ একটি নোড নির্বাচন করতে / সিম্বল ব্যবহার করা হয়।
    • উদাহরণ: /bookstore/book — এটি <bookstore> এলিমেন্টের মধ্যে সমস্ত <book> এলিমেন্ট নির্বাচন করবে।
  • Child Node Selection: / দ্বারা চাইল্ড নোড সিলেক্ট করা হয়।
    • উদাহরণ: /bookstore/book/title — এটি <bookstore> এলিমেন্টের মধ্যে <book> এলিমেন্টের <title> চাইল্ড নোড নির্বাচন করবে।
  • Attribute Selection: @ দ্বারা অ্যাট্রিবিউট নির্বাচন করা হয়।
    • উদাহরণ: /bookstore/book/@category — এটি <book> এলিমেন্টের category অ্যাট্রিবিউট নির্বাচন করবে।
  • Predicates (Condition Filtering): [] ব্যবহার করে নির্দিষ্ট শর্ত পূরণ করা নোড নির্বাচন করা হয়।
    • উদাহরণ: /bookstore/book[price>35] — এটি এমন <book> এলিমেন্ট নির্বাচন করবে যার <price> 35 এর বেশি।
  • Wildcard Selection: * দ্বারা সব নোড নির্বাচন করা যায়।
    • উদাহরণ: /bookstore/* — এটি <bookstore> এলিমেন্টের সব চাইল্ড নোড নির্বাচন করবে।

Common XPath Operators

  • / (Slash): রুট বা চাইল্ড নোড নির্বাচন।
  • // (Double Slash): পুরো ডকুমেন্টে কোথাও নোড নির্বাচন।
  • @: অ্যাট্রিবিউট সিলেকশন।
  • [] (Predicate): শর্ত অনুযায়ী নির্বাচন।
  • * (Asterisk): কোনো নির্দিষ্ট নোড বা এলিমেন্টের পছন্দ নেই, সব নির্বাচন।

Example XPath Expressions:

  • /bookstore/book: সমস্ত <book> এলিমেন্টকে নির্বাচন করবে <bookstore> এর মধ্যে।
  • /bookstore/book[price>30]: সব <book> এলিমেন্ট যেখানে <price> 30 এর বেশি।
  • //book: ডকুমেন্টের যেকোন জায়গা থেকে <book> এলিমেন্ট নির্বাচন করবে।

2. XPath Functions

XPath ফাংশনগুলি XPath এক্সপ্রেশনকে আরও শক্তিশালী ও নমনীয় করে তোলে। XPath ফাংশনগুলি ডেটা প্রক্রিয়াকরণে সহায়ক হয়, যেমন স্ট্রিং, সংখ্যা, তারিখ এবং নোড ডেটার সাথে কাজ করা। XPath ফাংশনগুলি সাধারণত নিচে উল্লেখিত ক্যাটেগরিতে বিভক্ত:

String Functions:

  • string(): কোনো নোডের টেক্সট মান বের করার জন্য ব্যবহৃত হয়।
    • উদাহরণ: string(/bookstore/book/title) — এটি <title> এলিমেন্টের টেক্সট মান বের করবে।
  • contains(): একটি স্ট্রিংকে অন্য স্ট্রিংয়ের মধ্যে অনুসন্ধান করে।
    • উদাহরণ: contains(/bookstore/book/title, 'Java') — এটি এমন সমস্ত <title> এলিমেন্ট নির্বাচন করবে যেখানে "Java" শব্দটি রয়েছে।
  • starts-with(): একটি স্ট্রিং যদি অন্য স্ট্রিং দিয়ে শুরু হয় তা পরীক্ষা করে।
    • উদাহরণ: starts-with(/bookstore/book/title, 'Learn') — এটি এমন সমস্ত <title> এলিমেন্ট নির্বাচন করবে যা "Learn" দিয়ে শুরু হয়।
  • substring(): স্ট্রিংয়ের একটি অংশ বের করে।
    • উদাহরণ: substring(/bookstore/book/title, 1, 4) — এটি <title> এলিমেন্টের প্রথম 4 ক্যারেক্টার বের করবে।

Numeric Functions:

  • sum(): একাধিক নম্বরের যোগফল বের করতে ব্যবহৃত হয়।
    • উদাহরণ: sum(/bookstore/book/price) — এটি সমস্ত <price> এলিমেন্টের যোগফল বের করবে।
  • floor(): কোনো সংখ্যা থেকে তার নিকটবর্তী নিম্নতর পূর্ণসংখ্যা বের করতে ব্যবহৃত হয়।
    • উদাহরণ: floor(34.87) — এটি 34 রিটার্ন করবে।
  • ceiling(): কোনো সংখ্যা থেকে তার নিকটবর্তী উচ্চতর পূর্ণসংখ্যা বের করতে ব্যবহৃত হয়।
    • উদাহরণ: ceiling(34.12) — এটি 35 রিটার্ন করবে।

Boolean Functions:

  • boolean(): একটি এক্সপ্রেশন যদি সত্য (true) হয়, তাহলে এটি true রিটার্ন করে, অন্যথায় false
    • উদাহরণ: boolean(/bookstore/book/price > 20) — এটি true রিটার্ন করবে যদি <price> 20 এর বেশি হয়।
  • not(): একটি শর্তের বিপরীত ফলাফল রিটার্ন করে।
    • উদাহরণ: not(/bookstore/book/price < 10) — এটি true রিটার্ন করবে যদি <price> 10 এর কম না হয়।

Node Functions:

  • count(): নির্বাচিত নোডগুলির সংখ্যা গননা করে।
    • উদাহরণ: count(/bookstore/book) — এটি <bookstore> এর মধ্যে মোট <book> এলিমেন্টের সংখ্যা রিটার্ন করবে।
  • position(): নির্বাচিত নোডের অবস্থান ফিরিয়ে দেয়।
    • উদাহরণ: /bookstore/book[position() = 1] — এটি <bookstore> এর প্রথম <book> এলিমেন্ট নির্বাচন করবে।

Java তে XPath Expression এবং Functions ব্যবহৃত হয় XML ডকুমেন্ট থেকে নির্দিষ্ট ডেটা বের করার জন্য। XPath expressions ব্যবহার করে সহজেই XML ডকুমেন্টের মধ্যে নেভিগেট করা যায় এবং XPath functions ব্যবহার করে ডেটা প্রক্রিয়াকরণ আরও দক্ষ এবং নমনীয় করা যায়।

Content added By

উদাহরণ সহ XPath ব্যবহার

51
51

Java তে XPath একটি অত্যন্ত শক্তিশালী ভাষা যা XML ডকুমেন্টে নির্দিষ্ট উপাদান বা মান অনুসন্ধান করতে ব্যবহৃত হয়। XPath ব্যবহার করে আপনি XML ডকুমেন্টের মধ্যে উপাদান বা অ্যাট্রিবিউটের মান বের করতে পারেন।

XPath কী?

XPath (XML Path Language) হল একটি ভাষা যা XML ডকুমেন্টের উপাদান বা অ্যাট্রিবিউট খুঁজে বের করতে ব্যবহৃত হয়। এটি XML ডকুমেন্টের গঠন অনুসারে উপাদান বা ডেটা নির্বাচন করতে বিভিন্ন পাথ বা এক্সপ্রেশন ব্যবহার করে।

Java তে XPath ব্যবহার:

Java তে XPath ব্যবহার করার জন্য আপনাকে javax.xml.xpath প্যাকেজের ক্লাসগুলি ব্যবহার করতে হবে, বিশেষ করে XPath এবং XPathExpression ক্লাসগুলি।

উদাহরণ:

ধরা যাক আমাদের একটি XML ডকুমেন্ট আছে এবং আমরা XPath ব্যবহার করে এর মধ্যে কিছু নির্দিষ্ট তথ্য বের করতে চাই।

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

<?xml version="1.0" encoding="UTF-8"?>
<employees>
    <employee>
        <name>John Doe</name>
        <position>Software Developer</position>
        <salary>50000</salary>
    </employee>
    <employee>
        <name>Jane Smith</name>
        <position>Project Manager</position>
        <salary>75000</salary>
    </employee>
    <employee>
        <name>Michael Brown</name>
        <position>QA Engineer</position>
        <salary>45000</salary>
    </employee>
</employees>

2. Java কোড - XPath ব্যবহার

এখন, আমরা XPath ব্যবহার করে এই XML ডকুমেন্ট থেকে কিছু নির্দিষ্ট তথ্য বের করতে পারি। উদাহরণস্বরূপ, Software Developer পদের কর্মচারীর নাম বের করা এবং তাদের বেতন বের করা।

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathFactory;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathConstants;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import java.io.StringReader;

public class XPathExample {
    public static void main(String[] args) {
        try {
            // XML ডকুমেন্ট লোড করা
            String xmlContent = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
                    "<employees>\n" +
                    "    <employee>\n" +
                    "        <name>John Doe</name>\n" +
                    "        <position>Software Developer</position>\n" +
                    "        <salary>50000</salary>\n" +
                    "    </employee>\n" +
                    "    <employee>\n" +
                    "        <name>Jane Smith</name>\n" +
                    "        <position>Project Manager</position>\n" +
                    "        <salary>75000</salary>\n" +
                    "    </employee>\n" +
                    "    <employee>\n" +
                    "        <name>Michael Brown</name>\n" +
                    "        <position>QA Engineer</position>\n" +
                    "        <salary>45000</salary>\n" +
                    "    </employee>\n" +
                    "</employees>";

            // DocumentBuilderFactory তৈরি করা
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            factory.setNamespaceAware(true);
            DocumentBuilder builder = factory.newDocumentBuilder();
            InputSource inputSource = new InputSource(new StringReader(xmlContent));
            Document document = builder.parse(inputSource);

            // XPathFactory তৈরি করা
            XPathFactory xpathFactory = XPathFactory.newInstance();
            XPath xpath = xpathFactory.newXPath();

            // XPath এক্সপ্রেশন
            String expression = "/employees/employee[position='Software Developer']/name";

            // XPath এক্সপ্রেশন এক্সিকিউট করা
            XPathExpression expr = xpath.compile(expression);
            NodeList nodeList = (NodeList) expr.evaluate(document, XPathConstants.NODESET);

            // ফলাফল দেখানো
            if (nodeList.getLength() > 0) {
                System.out.println("Name of Software Developer: " + nodeList.item(0).getTextContent());
            }

            // বেতন বের করা (Salary of the Software Developer)
            String salaryExpression = "/employees/employee[position='Software Developer']/salary";
            XPathExpression salaryExpr = xpath.compile(salaryExpression);
            String salary = (String) salaryExpr.evaluate(document, XPathConstants.STRING);
            System.out.println("Salary of Software Developer: " + salary);
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  1. XML ডকুমেন্ট লোড করা: XML ডেটা একটি স্ট্রিং আকারে সোজা কোডে দেওয়া হয়েছে এবং তারপরে InputSource দিয়ে তা লোড করা হয়েছে।
  2. XPathFactory এবং XPath তৈরি করা: XPath ব্যবহার করার জন্য XPathFactory এবং XPath অবজেক্ট তৈরি করা হয়েছে।
  3. XPath এক্সপ্রেশন: XPath এক্সপ্রেশন ব্যবহার করা হয়েছে যাতে XML ডকুমেন্ট থেকে "Software Developer" পদের কর্মচারীর নাম এবং বেতন বের করা যায়।
    • প্রথম এক্সপ্রেশন: /employees/employee[position='Software Developer']/name → এটি "Software Developer" পদের কর্মচারীর নাম বের করবে।
    • দ্বিতীয় এক্সপ্রেশন: /employees/employee[position='Software Developer']/salary → এটি "Software Developer" পদের কর্মচারীর বেতন বের করবে।
  4. XPath এক্সপ্রেশন কার্যকর করা: xpath.compile() মেথড দিয়ে XPath এক্সপ্রেশন কম্পাইল করা এবং evaluate() মেথড দিয়ে XML ডকুমেন্টে তা প্রয়োগ করা হয়।
  5. ফলাফল প্রদর্শন: XPath এক্সপ্রেশন থেকে প্রাপ্ত ফলাফল আউটপুটে প্রদর্শিত হয়।

আউটপুট:

Name of Software Developer: John Doe
Salary of Software Developer: 50000

XPath এর কিছু সাধারণ এক্সপ্রেশন:

  • /employees/employee/name: সমস্ত কর্মচারীর নাম বের করবে।
  • //employee[position='Project Manager']/name: "Project Manager" পদের কর্মচারীর নাম বের করবে।
  • /employees/employee[salary>50000]/name: যাদের বেতন ৫০,০০০ এর বেশি, তাদের নাম বের করবে।

XPath ব্যবহার করে আপনি XML ডকুমেন্টে নির্দিষ্ট ডেটা বের করতে পারবেন এবং Java তে এটি খুবই সহজ এবং কার্যকরী। XPath বিভিন্ন জটিল অনুসন্ধান করতে সক্ষম এবং এটি XML ডকুমেন্টে ডেটা বের করার জন্য একটি শক্তিশালী টুল।

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion