用PHP編寫和讀取XML的幾種方式_PHP教程

來源:互聯網
上載者:User
一.使用DOM產生和讀取XML檔案
執行個體一:
複製代碼 代碼如下:
//Creates XML string and XML document using the DOM
$dom = new DomDocument('1.0');
//add root -
$books = $dom->appendChild($dom->createElement_x_x ('books'));
//add element to
$book = $books->appendChild($dom->createElement_x_x ('book'));
//add element to <book> <BR>$title = $book->appendChild($dom->createElement_x_x ('title')); <BR>//add <title> text node element to <title> <BR>$title->appendChild($dom->createTextNode('Great American Novel')); <BR>//generate xml <BR>$dom->formatOutput = true; // set the formatOutput attribute of domDocument to true <BR>//save XML as string or file <BR>$test1 = $dom->saveXML(); // put string in test1 <BR>$dom -> save('test1.xml'); // save as file <BR>?> <BR> <BR>執行個體二: <BR><span style="CURSOR: pointer" onclick="doCopy('code49077')"><U>複製代碼</u></span> 代碼如下: <BR>$aa = "111"; <BR>$xmlstr = <<<XML <BR><?xml version='1.0'?> <BR><document> <BR><title>{$aa}
Joe
Jane

I know that's the answer -- but what's the question?


XML;
$dom = new domDocument;
$dom->loadXML($xmlstr);
$test1 = $dom->saveXML();
$dom->save('test1.xml');


執行個體三:
test1.xml:
複製代碼 代碼如下:



Jack Herrington
PHP Hacks
O'Reilly


Jack Herrington
Podcasting Hacks
O'Reilly




example.php:
複製代碼 代碼如下:
$doc = new DOMDocument();
$doc->load('test1.xml');
$books = $doc->getElementsByTagName("book");
foreach($books as $book){
$authors = $book->getElementsByTagName("author");
$author = $authors->item(0)->nodeValue;
$publishers = $book->getElementsByTagName( "publisher" );
$publisher = $publishers->item(0)->nodeValue;
$titles = $book->getElementsByTagName( "title" );
$title = $titles->item(0)->nodeValue;
echo "$title - $author - $publisher\n";
}


二.使用simple產生和讀取xml檔案
執行個體一:
複製代碼 代碼如下:
$xmlstr = <<


Great American Novel


Cliff
really great guy


Lovely Woman
matchless beauty


Loyal Dog
sleepy



Cliff meets Lovely Woman. Loyal Dog sleeps, but wakes up to bark
at mailman.

4
9


XML;

//提取節點內容
$xml = new SimpleXMLElement($xmlstr);
foreach ($xml->book[0]->success as $success) {
switch((string) $success['type']) { // Get attributes as element indices
case 'bestseller':
echo $success. ' months on bestseller list
';
break;
case 'bookclubs':
echo $success. ' bookclub listings';
break;
}
}

//修改文本節點內容
$xml = new SimpleXMLElement($xmlstr);
$xml->book[0]->characters->character[0]->name = 'Big Cliff';
echo $xml->asXML();

//添加子項目的文本節點
$xml = new SimpleXMLElement($xmlstr);
$character = $xml->book[0]->characters->addChild('character');
$character->addChild('name', 'Yellow Cat');
$character->addChild('desc', 'aloof');
$success = $xml->book[0]->addChild('success', '2');
$success->addAttribute('type', 'reprints');
echo $xml->asXML();

?>


執行個體二:
複製代碼 代碼如下:
if (file_exists('test1.xml')) { //讀取xml檔案
$xml = simplexml_load_file('test1.xml');
var_dump(xml);
} else {
exit('Failed to open test1.xml.');
}


三.DOM和simple互操作
DOM匯入simpleXML:
複製代碼 代碼如下:
$sxe = simplexml_load_string('Great American <BR>Novel');
if ($sxe === false) {
echo 'Error while parsing the document';
exit;
}
$dom_sxe = dom_import_simplexml($sxe);
if (!$dom_sxe) {
echo 'Error while converting XML';
exit;
}
$dom = new DOMDocument('1.0');
$dom_sxe = $dom->importNode($dom_sxe, true);
$dom_sxe = $dom->appendChild($dom_sxe);
$test2 = $dom->saveXML(); // put string in test2
$dom -> save('test2.xml'); // save as file
?>


simpleXML匯入DOM:
複製代碼 代碼如下:
$dom = new domDocument;
$dom->loadXML('Great American <BR>Novel');
if (!$dom) {
echo 'Error while parsing the document';
exit;
}
$s = simplexml_import_dom($dom);
echo $s->book[0]->title; // Great American Novel
?>

http://www.bkjia.com/PHPjc/326360.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/326360.htmlTechArticle一.使用DOM產生和讀取XML檔案 執行個體一: 複製代碼 代碼如下: ?php //Creates XML string and XML document using the DOM $dom = new DomDocument('1.0'); //add root - bo...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.