一 、XML 读

1.1、 首先同目录定义好一个XML文件 :

book.xml

<?xml version="1.0" encoding="utf-8"?>
<books>
<book>
<id>1</id>
<name>书本001</name>
</book>
<book>
<id>2</id>
<name>书本002</name>
</book>
<book>
<id>3</id>
<name>书本003</name>
</book>
<title>这是标题</title>
</books>

1.2  通过 getElementsByTagName 读取XML

$xml=new DOMDocument();
$xml->load("book.xml");
// 通过 getElementsByTagName 读取
foreach($xml->getElementsByTagName('book') as $book)
{
$id=$book->getElementsByTagName("id");
$name=$book->getElementsByTagName("name");
echo "id:".$id->item(0)->nodeValue.",name:".$name->item(0)->nodeValue."<br/>";
}

1.3 通过 simplexml_import_dom  直接读取属性

// 通过simplexml_import_dom  直接读取属性
$simplexml = simplexml_import_dom($xml);
echo "sid->title:".$simplexml->title;
echo  "the id is :".$simplexml->book[0]->id;
echo "the id is :".$simplexml->title;

二 、XML 创建

2.1、通过 字符串 创建XML document 元素

$xmlString=<<<XML
<?xml version="1.0" encoding="utf-8"?>
<books>
<book>
<id>1</id>
<name>书本001</name>
</book>
<book>
<id>2</id>
<name>书本002</name>
</book>
<book>
<id>3</id>
<name>书本003</name>
</book>
<title>这是标题</title>
</books>
XML; $dom=new DomDocument;
$dom->loadXML($xmlString);

2.2 通过 DOMDocument  api  创建XML 对象 ( 子节点,节点属性 ,CDATA属性值标记)

class buildXml
{ /*
* 创建一个XML元素
* */
private function createXml()
{
$dom = new DOMDocument("1.0");
$books = $dom->createElement("books"); for ($i = 0; $i < 4; $i++) {
$book = $dom->createElement("book"); // 为book 节点添加一个属性
$price = $dom->createAttribute("price");
$priceValue = $dom->createTextNode($i * 10);
$price->appendChild($priceValue);
$book->appendChild($price); // 添加一个id 接点元素 并赋值
$id = $dom->createElement("id");
$idValue = $dom->createTextNode($i);
$id->appendChild($idValue);
$book->appendChild($id); // 添加一个待 CDATA标识的内容
$title = $dom->createElement("title");
$titleValue = $dom->createCDATASection("这是一个带CDATA标签的内容");
$title->appendChild($titleValue);
$book->appendChild($title);
$books->appendChild($book);
} $dom->appendChild($books);
return $dom->saveXML();
} // 输出XML
public function printXML()
{
header("Content-Type: text/xml");
echo $this->createXml();
} // 保存XML
public function saveXML()
{
$result = false;
try {
//打开要写入 XML数据的文件
$fp = fopen("newxml.xml", "w");
//写入 XML数据
fwrite($fp, $this->createXml());
//关闭文件
fclose($fp);
$result = true;
} catch (Exception $e) {
print $e->getMessage();
exit();
}
return $result;
}
}

2.3  http 输出 XML


require_once "buildXml.php";
$xml = new buildXml;
echo $xml->printXML();

2.4 已文件形式保存 XML

require_once "buildXml.php";

$xml = new buildXml;
$xml->saveXML();

php XML 读写 创建的更多相关文章

  1. .NET 对 XML 进行创建,增加,删除,修改操作整理

    前言: 最近做了一个项目,程序A在一个服务器程序B在另一台服务器,然而主程序A需要访问程序B的图片集文件夹下载到本服务器上,为了防止多次对Web Services进行调用,在主程序A中创建一个XML文 ...

  2. 【Python】Python XML 读写

    class ACTIVE_FILE_PROTECT_RULE_VIEW(APIView): renderer_classes = (JSONRenderer, BrowsableAPIRenderer ...

  3. Java 操纵XML之创建XML文件

    Java 操纵XML之创建XML文件 一.JAVA DOM PARSER DOM interfaces The DOM defines several Java interfaces. Here ar ...

  4. XML读写工具

    import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import j ...

  5. UE4 Xml读写

    UE4自带一个XmlParser,可以很方便的实现Xml的读写. 1,在PublicDependencyModuleNames.AddRange中添加XmlParser. 2,include XmlP ...

  6. C# XML读写实例

    一.使用System.Xml 实例:完成如下格式配置文件的读写操作: <?xml version="1.0" encoding="UTF-8"?> ...

  7. xml读写文件实例

    在某个通讯中需要向服务器发送请求xml,格式例子如下: <?xml version="1.0" encoding="UTF-8"?> <ROO ...

  8. 网站的配置文件XML读写

    网站的配置信息一般都写入到XML中,以下是简单的对xml的读写操作,仅供参考. 读操作: XmlDocument xmlDoc = new XmlDocument(); XmlReaderSettin ...

  9. Android开发之XML的创建和解析

    参考:http://blog.csdn.net/pi9nc/article/details/9320413 XML文件的解析,代码: public void click(View v) { Input ...

随机推荐

  1. [C++] 将 mp3 等音乐资源以资源形式嵌入 exe 文件中

    引用:http://www.easyx.cn/skills/View.aspx?id=6 本文讲解怎样将 mp3 等音乐资源以资源形式嵌入 exe 文件中,并通过 mciSendString 调用.嵌 ...

  2. [游戏学习28] MFC 时钟

    >_<:这是一个时钟小程序 >_<:通过调用获得系统时间然后经过计算得出当前时间,然后再以3个圆环表示时分秒. >_<:TAO_CLOCK.h class CMyA ...

  3. [JS11] 状态栏滚动

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  4. 只有好的棋手才会走运-《打造Facebook》读后感

    王淮的<打造Facebook>一书不厚,花半天时间轻松读完.书中没有大段的说教,只有近乎流水的陈述.正如作者所说,打造Facebook这本书由巴克伯格来写再合适不过.可惜他至少在近几年内没 ...

  5. 如何设置iframe高度自适应,在跨域的情况下能做到吗?

    在页面上使用iframe来动态加载页面内容是网页开发中比较常见的方法.在父页面中给定一个不带滚动条的iframe,然后对属性src指定一个可加载的页面,这样当父页面被访问的时候,子页面可以被自动加载. ...

  6. SpringMVC实现一个controller写多个方法

    MultiActionController与ParameterMethodNameResolver在一个Controller类中定义多个方法,并根据使用者的请求来执行当中的某个方法,相当于Struts ...

  7. iOS开发--JSON

    1.什么是JSON? JSON(JavaScript Object Notation)在网络传输中几乎无处不在,JSON是一种轻量级的数据交换格式,是基于JavaScript(Standard ECM ...

  8. C#:通过Visual Studio项目预生成命令获取SVN版本号

    之前有一个winfrom项目,想要通过获取SVN版本号作为程序的内部编译版本号.网上也有各种方法,但没有一篇行得通的方法.于是我经过一系列研究,得出了一些经验,特总结成一篇博客. 方法一:通过SVN命 ...

  9. 喜大普奔!Fanvas正式对外开源了,一键把Flash转为Canvas动画!移动终端动画开发不再困难。

    http://code.tencent.com/ https://github.com/TencentOpen/Fanvas DEMO: http://kenkozheng.github.io/fan ...

  10. Leetcode 121 Best Time to Buy and Sell Stock 动态规划

    由于题意太长,请自己翻译,很容易懂的. 做法:从前向后遍历数组,记录当前出现过的最低价格,作为买入价格,并计算以当天价格出售的收益,作为可能的最大收益,整个遍历过程中,出现过的最大收益就是所求.动态规 ...