من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

ساخت فایل xml با پی اچ پی

ساخت فایل xml با پی اچ پی
ساخت فایل xml با پی اچ پی

ساخت فایل xml با پی اچ پی

فایل‌های xml همان‌طور که می‌دانید بیش‌تر کاربردهای برای خروجی گرفتن از اطلاعات سایت یا کاربرد محبوب آن‌ها در sitemapها است. در این نوشته با شما روش ساخت فایل‌های xml را در زبان برنامه نویسی php آموزش می‌دهیم تا بتوانید به سادگی از آن استفاده کنید. این آموزش کاملا به صورت اختصاصی نوشته شده است پس برای حمایت از ما آن را با دوستان خود به اشتراک بگذارید.

 

ساخت فایل xml با پی اچ پی

اگر علاقه دارید در ارتباط با این آموزش تخصصی‌تر بخوانید روی این لینک کلیک کنید. خب برای ساخت فایل‌های xml در php ما ابتدا یک کلاس به نام xmlwriter در نظر گرفته‌ایم.

کلاس xml writer

<?php
class Xml_writer extends XMLWriter
{
    private $_rootName = '';
    private $_xmlVersion = '1.0';
    private $_charSet = 'UTF-8';
    private $_indentString = '    ';
    private $_xsltFilePath = '';

    public function __construct ()
    {}
    public function setRootName ($rootName)
    {
        $this->_rootName = $rootName;
    }
    public function setXmlVersion ($version)
    {
        $this->_xmlVersion = $version;
    }
    public function setCharSet ($charSet)
    {
        $this->_charSet = $charSet;
    }
    public function setIndentStr ($indentString)
    {
        $this->_indentString = $indentString;
    }
    public function setXsltFilePath ($xsltFilePath)
    {
        $this->_xsltFilePath = $xsltFilePath;
    }
    public function initiate ()
    {
        $this->openMemory();
        if ($this->_indentString) {
            $this->setIndent(true);
            $this->setIndentString($this->_indentString);
        }
        $this->startDocument($this->_xmlVersion, $this->_charSet);
        if ($this->_xsltFilePath) {
            $this->writePi('xml-stylesheet', 'type="text/xsl" href="' . $this->_xsltFilePath . '"');
        }
        $this->startElement($this->_rootName);
    }
    public function startBranch ($name, $attributes = array())
    {
        $this->startElement($name);
        $this->_addAttributes($attributes);
    }
    public function endBranch ()
    {
        $this->endElement();
    }
    public function addNode ($name, $value, $attributes = array(), $cdata = false)
    {
        if ($cdata) {
            $this->startElement($name);
            $this->_addAttributes($attributes);
            $this->writeCdata($value);
            $this->endElement();
        }
        else {
            $this->startElement($name);
            $this->_addAttributes($attributes);
            $this->text($value);
            $this->endElement();
        }
    }
    public function getXml ($echo = false)
    {
        if ($echo == true) {
            header('Content-type: text/xml');
        }
        $this->endElement();
        $this->endDocument();
        $output = $this->outputMemory();
        if ($echo == true) {
            print $output;
        }
        return $output;
    }
    private function _addAttributes ($attributes)
    {
        if (count($attributes) > 0) {
            foreach ($attributes as $key => $value) {
                $this->writeAttribute($key, $value);
            }
        }
    }
}
?>

توضیحات کلاس xml writer:

  • این کلاس شامل پنج متغیر به صورت private است این متغیر‌ها شامل نام‌های زیر است:
    • _rootName.
    • _xmlVersion.
    • _charSet.
    • _indentString.
    • _xsltFilePat.
  • کلاس بالا شامل توابع زیر است: (توابع زیر همگی public هستند.)
    • __construct.
    • setRootName.
    • setXmlVersion.
    • setCharSet.
    • setIndentStr.
    • setXsltFilePath.
    • initiate.
    • startBranch.
    • addNode.
    • getXml.
    • _addAttributes.

خب کلاس بالا را با نام xmlwriter.php در کنار پروژه‌ی خود ذخیره کنید و به سادگی از حالا یک کلاس برای ساخت فایل‌های xml دارید.

نحوه استفاده از xmlwriter در php

برای استفاده از کلاس xml writer کافی است مثال زیر را توجه کنید:

<?php

require_once("xmlWriter.php");
$xml = new Xml_writer;
$xml->setRootName('Student');
$xml->initiate();

$xml->startBranch("person");
$xml->addNode("firstName", "Amir");
$xml->addNode("lastName", "Shokri");
$xml->endBranch();

$xml->startBranch("person");
$xml->addNode("firstName", "John");
$xml->addNode("lastName", "Due");
$xml->endBranch();

$file_name = "myxmlfile.xml";
$myxmlfile = fopen($file_name, "w");
fwrite($myxmlfile, $xml->getXml(false));
fclose($myxmlfile);


?>

در مثال بالا ابتدا کلاس xml writer را با تابع require_once فراخوانی کردیم. بعد از فراخوانی این کلاس یک نمونه از آن ساخته‌ایم و نام آن را $xml قرار داده‌ایم. (در پی اچ پی نام متغیرها با علامت $ شروع می‌شود.) سپس با تابع setRootName یک Root برای فایل xml تعیین کردیم که تمام اعضا از این به بعد در ساختار این ریشه قرار بگیرند. (فایل‌های xml می‌توانند چند ریشه‌ای شوند.) سپس با توابع startBranch و addNode می‌توانید آیتم‌های جدید را به آن اضافه کنید. در آخر هم با توابع نوشتن در فایل یک فایل xml ایجاد کرده‌ایم و محتوای ایجاد شده را با تابع getXml درون آن قرار دادیم.

 

شما هم‌چنین می‌توانید در این لینک با نحوه‌ی ساخت فایل اکسل یا csv در پی اچ پی آشنا شوید.

 

اگر روش‌های بهتری برای ساخت فایل xml با php می‌شناسید در بخش نظرات برای ما بنویسید. منتظر نظرات و پیشنهادات و سوالات شما در ارتباط با این آموزش کاربردی و ساده هستیم؛ نظرهای شما باعث دلگرمی ما می‌شود.

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]