用PHP编写和读取XML的几种方式

前端之家收集整理的这篇文章主要介绍了用PHP编写和读取XML的几种方式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一.使用DOM生成和读取XML文件
实例一:
<div class="codetitle"><a style="CURSOR: pointer" data="57313" class="copybut" id="copybut57313" onclick="doCopy('code57313')"> 代码如下:

<div class="codebody" id="code57313">
<?PHP
//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></div> <BR>实例二: <BR><div class="codetitle"><span><a style="CURSOR: pointer" data="49027" class="copybut" id="copybut49027" onclick="doCopy('code49027')"><U></U></a> <a href="/tag/daima/" target="_blank" class="keywords">代码</a>如下:</div><div class="codebody" id="code49027"> <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:
<div class="codetitle"><a style="CURSOR: pointer" data="27000" class="copybut" id="copybut27000" onclick="doCopy('code27000')"> 代码如下:
<div class="codebody" id="code27000">
<?xml version="1.0"?>


Jack Herrington
PHP Hacks
O'Reilly


Jack Herrington
Podcasting Hacks
O'Reilly


example.php:
<div class="codetitle"><a style="CURSOR: pointer" data="66521" class="copybut" id="copybut66521" onclick="doCopy('code66521')"> 代码如下:
<div class="codebody" id="code66521">
$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文件
实例一:
<div class="codetitle"><a style="CURSOR: pointer" data="47959" class="copybut" id="copybut47959" onclick="doCopy('code47959')"> 代码如下:
<div class="codebody" id="code47959">
<?
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>


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.

@H_403_145@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(); ?>
实例二:
<div class="codetitle"><a style="CURSOR: pointer" data="30205" class="copybut" id="copybut30205" onclick="doCopy('code30205')"> 代码如下:<div class="codebody" id="code30205">
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:
<div class="codetitle"><a style="CURSOR: pointer" data="56908" class="copybut" id="copybut56908" onclick="doCopy('code56908')"> 代码如下:<div class="codebody" id="code56908">
<?PHP
$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:
<div class="codetitle"><a style="CURSOR: pointer" data="76798" class="copybut" id="copybut76798" onclick="doCopy('code76798')"> 代码如下:<div class="codebody" id="code76798">
<?PHP
$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
?>

猜你在找的PHP相关文章