• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 4年前 (2022-01-01) 31次浏览 已收录 0个评论

今天我看了IBM的一些官方文档和一些XML的相关资料,特把一些关键点以及PHP编写和读取XML的一些实例整理出来,方便以后使用

一.使用DOM生成和读取XML文件
实例一:

代码如下:
<?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 <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 />?> </div> <p>实例二: </p> <div class="codetitle"> 代码如下:</div> <div class="codebody" id="code42485">$aa = “111”; <br />$xmlstr = <<<XML </p> <p><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 = <<<XML

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来源gao@daima#com搞(%代@#码网 {
exit(‘Failed to open test1.xml.’);
}

三.DOM和simple互操作
DOM导入simpleXML:

代码如下:
<?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:

代码如下:
<?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编写和读取XML的几种方式的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:用PHP编写和读取XML的几种方式

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址