一.使用DOM生成和读取XML文件 实例一: 复制代码 代码如下: <?php //Creates XML string and XML document using the DOM $dom = new DomDocument("1.0"); //add root - <books> $books = $dom->appendChild($dom->createElement_x_x ("books")); //add <book> element to <books> $book = $books->appendChild($dom->createElement_x_x ("book")); //add <title> element to <book> $title = $book->appendChild($dom->createElement_x_x ("title")); //add <title> text node element to <title> $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 ?>
实例二: 复制代码 代码如下: $aa = "111"; $xmlstr = <<<XML <?xml version="1.0"?> <document> <title>{$aa}</title> <from>Joe</from> <to>Jane</to> <body> I know that"s the answer -- but what"s the question? </body> </document> XML; $dom = new domDocument; $dom->loadXML($xmlstr); $test1 = $dom->saveXML(); $dom->save("test1.xml");
二.使用simple生成和读取xml文件 实例一: 复制代码 代码如下: <? $xmlstr = <<<XML <?xml version="1.0" standalone="yes"?> <books> <book> <title>Great American Novel</title> <characters> <character> <name>Cliff</name> <desc>really great guy</desc> </character> <character> <name>Lovely Woman</name> <desc>matchless beauty</desc> </character> <character> <name>Loyal Dog</name> <desc>sleepy</desc> </character> </characters> <plot> Cliff meets Lovely Woman. Loyal Dog sleeps, but wakes up to bark at mailman. </plot> <success type="bestseller">4</success> <success type="bookclubs">9</success> </book> </books> 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<br>"; break; case "bookclubs": echo $success. " bookclub listings"; break; } }
实例二: 复制代码 代码如下: 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: 复制代码 代码如下: <?php $sxe = simplexml_load_string("<books><book><title>Great American Novel</title></book></books>"); 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: 复制代码 代码如下: <?php $dom = new domDocument; $dom->loadXML("<books><book><title>Great American Novel</title></book></books>"); if (!$dom) { echo "Error while parsing the document"; exit; } $s = simplexml_import_dom($dom); echo $s->book[0]->title; // Great American Novel ?>