php XML 讀寫 建立

一 、XML 讀php

     1.一、 首先同目錄定義好一個XML文件 :node

    book.xmlapi

<?xml version="1.0" encoding="utf-8"?>
<books>
  <book>
    <id>1</id>
    <name>書本001</name>
  </book>
    <book>
    <id>2</id>
    <name>書本002</name>
  </book>
    <book>
    <id>3</id>
        <name>書本003</name>
  </book>
    <title>這是標題</title>
</books>

1.2  經過 getElementsByTagName 讀取XMLapp

 

$xml=new DOMDocument();
$xml->load("book.xml");
// 經過 getElementsByTagName 讀取
foreach($xml->getElementsByTagName('book') as $book)
{
    $id=$book->getElementsByTagName("id");
    $name=$book->getElementsByTagName("name");
    echo "id:".$id->item(0)->nodeValue.",name:".$name->item(0)->nodeValue."<br/>";
}

1.3 經過 simplexml_import_dom  直接讀取屬性dom

// 經過simplexml_import_dom  直接讀取屬性
$simplexml = simplexml_import_dom($xml);
echo "sid->title:".$simplexml->title;
echo  "the id is :".$simplexml->book[0]->id;
echo "the id is :".$simplexml->title;

 

二 、XML 建立ui

     2.一、經過 字符串 建立XML document 元素this

    

$xmlString=<<<XML
<?xml version="1.0" encoding="utf-8"?>
<books>
  <book>
    <id>1</id>
    <name>書本001</name>
  </book>
    <book>
    <id>2</id>
    <name>書本002</name>
  </book>
    <book>
    <id>3</id>
        <name>書本003</name>
  </book>
    <title>這是標題</title>
</books>
XML;


$dom=new DomDocument;
$dom->loadXML($xmlString);

 

2.2 經過 DOMDocument  api  建立XML 對象 ( 子節點,節點屬性 ,CDATA屬性值標記)spa

class buildXml
{

    /*
     *  建立一個XML元素
     * */
    private function  createXml()
    {
        $dom = new DOMDocument("1.0");
        $books = $dom->createElement("books");

        for ($i = 0; $i < 4; $i++) {
            $book = $dom->createElement("book");

// 爲book 節點添加一個屬性
            $price = $dom->createAttribute("price");
            $priceValue = $dom->createTextNode($i * 10);
            $price->appendChild($priceValue);
            $book->appendChild($price);


// 添加一個id 接點元素 並賦值
            $id = $dom->createElement("id");
            $idValue = $dom->createTextNode($i);
            $id->appendChild($idValue);
            $book->appendChild($id);

//  添加一個待 CDATA標識的內容
            $title = $dom->createElement("title");
            $titleValue = $dom->createCDATASection("這是一個帶CDATA標籤的內容");
            $title->appendChild($titleValue);
            $book->appendChild($title);
            $books->appendChild($book);
        }

        $dom->appendChild($books);
        return $dom->saveXML();
    }


    // 輸出XML
    public function  printXML()
    {
        header("Content-Type: text/xml");
        echo $this->createXml();
    }

    // 保存XML
    public function  saveXML()
    {
        $result = false;
        try {
            //打開要寫入 XML數據的文件
            $fp = fopen("newxml.xml", "w");
            //寫入 XML數據
            fwrite($fp, $this->createXml());
            //關閉文件
            fclose($fp);
            $result = true;
        } catch (Exception $e) {
            print $e->getMessage();
            exit();
        }
        return $result;
    }
}

 

2.3  http 輸出 XMLcode

 
 
require_once "buildXml.php";
$xml = new buildXml;
 echo $xml->printXML();

 

2.4 已文件形式保存 XMLxml

require_once "buildXml.php";

$xml = new buildXml;
$xml->saveXML();
相關文章
相關標籤/搜索