一.使用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 $title = $book->appendChild($dom->createElement_x_x ('title')); //add text node element to $title->appendChild($dom->createTextNode('Great American Novel')); //generate xml $dom->formatOutput = true; // set the formatOutput attribute of domDocument to true //save XML as string or file $test1 = $dom->saveXML(); // put string in test1 $dom -> save('test1.xml'); // save as file ?> 实例二: <div class="codetitle"><a style="CURSOR: pointer" data="49027" class="copybut" id="copybut49027" onclick="doCopy('code49027')"> 代码如下:<div class="codebody" id="code49027"> $aa = "111"; $xmlstr = <<<XML <?xml version='1.0'?> {$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 - $publishern"; } 二.使用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. 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 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 Novel'); if (!$dom) { echo 'Error while parsing the document'; exit; } $s = simplexml_import_dom($dom); echo $s->book[0]->title; // Great American Novel ?>
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|