PHP中读取XML的方式有哪些
创始人
2024-12-15 11:41:33
0次

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

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...