巅云智能建站平台搭建版(创业门户版)火爆上线,终身授权!新增:文章智能采集+全站真静态打包+城市分站+智能小程序+非法词过滤+H5自适应+智能链词等功能功能详情
建站专提News

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

一佰互联网站开发设计(www.yinxi.net) 发布日期 2019-04-30 09:21:35 浏览数: 113

一.使用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");
实例三:
test1.xml:
复制代码 代码如下:
<?xml version="1.0"?>
<books>
<book>
<author>Jack Herrington</author>
<title>PHP Hacks</title>
<publisher>O"Reilly</publisher>
</book>
<book>
<author>Jack Herrington</author>
<title>Podcasting Hacks</title>
<publisher>O"Reilly</publisher>
</book>
</books>
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";
}
二.使用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;
}
} //修改文本节点内容
$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:
复制代码 代码如下:
<?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
?>
一佰互联是全国知名建站品牌服务商,我们有九年网站建设、网站制作、网页设计、php开发和域名注册及虚拟主机服务经验,提供的自助建站服务更是全国有名。近年来还整合团队优势自主开发了可视化多用户”巅云建站系统“3.0平台版,拖拽排版网站制作设计,轻松实现pc站、手机微网站、小程序、APP一体化全网营销网站建设 ,已成功的为全国上百家网络公司提供自助建站平台搭建服务。

相关新闻more

22
04月
网页中使用任意字体之实际操作附演示

之前对“在网页中嵌入非系统自带字体”做过一点研究,虽然技术上能实现,但是对国内来说,没有太大的实际意义,因为一个中文... >>详情

28
04月
php使用Cookie控制访问授权的方法

本文实例讲述了php使用Cookie控制访问授权的方法。分享给大家供大家参考。具体如下:复制代码 代码如下:<?php if... >>详情

15
04月
重庆网站设计,网站设计目录的作用和重要性

你在网络上做生意因为你想获得成功,对不对?为了达到重庆网站设计这个目的,作为网站的拥有者,跟你的网站设计者一起,要做更好地工作来获得更多的链... >>详情

03
05月
网站优化SEO如今站长需要用营销的思想看问题

我一直认为SEO的水平分三个层面,第一个层面是你刚学SEO,我们的目标就是把关键词排名做上去。以至于一些不是很懂SEO的人认为SEO只是简单... >>详情

高端网站建设

美工兼顾SEO,为企业电子商务营销助力!

电话:

023-85725751
建站

产品

域名注册 虚拟主机 云服务器 企业邮局
智能建站 APP打包 微站/小程序 创业平台
网站推广 媒体营销 智能采集 AI机器人
400电话 短信营销 店销机器人
私人定制 门户网站