资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

PHP中读取XML的方式有哪些-创新互联

这篇文章将为大家详细讲解有关PHP中读取XML的方式有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

潍城网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联成立于2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。

 一.使用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/>?></p><br/><p><br/>实例二:</p><br/><p>复制代码 代码如下:</p><p><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
?>


关于PHP中读取XML的方式有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


本文标题:PHP中读取XML的方式有哪些-创新互联
URL地址:http://cdkjz.cn/article/desjpg.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220