一 、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. [ACM_几何] Transmitters (zoj 1041 ,可旋转半圆内的最多点)

    Description In a wireless network with multiple transmitters sending on the same frequencies, it is ...

  2. [游戏模版8] Win32 透明贴图

    >_<:The same with previous introduction. In the InitInstance fanction make a little change: &g ...

  3. [游戏模版11] Win32 动画 时间消息

    >_<:This time we will study a new way to operate your picture.That is running your picture by ...

  4. 地理围栏算法解析(Geo-fencing)

    地理围栏算法解析 http://www.cnblogs.com/LBSer/p/4471742.html 地理围栏(Geo-fencing)是LBS的一种应用,就是用一个虚拟的栅栏围出一个虚拟地理边界 ...

  5. paip. java resin 远程 调试 java resin remote debug

    paip. java resin 远程 调试 java resin remote debug 作者Attilax  艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 ...

  6. Hadoop-2.6.0 集群的 安装与配置

    1.  配置节点bonnie1 hadoop环境 (1) 下载hadoop- 2.6.0 并解压缩 [root@bonnie1 ~]# wget http://apache.fayea.com/had ...

  7. bundle与package区别与联系

    转:http://blog.csdn.net/lmbda/article/details/17895619 bundle是Apple提供的软件安装的便捷方法. bundle为用户和开发者提供了一个简单 ...

  8. Java Socket网络编程常见异常(转)

    1.java.net.SocketTimeoutException 这个异常比较常见,socket超时.一般有2个地方会抛出这个,一个是connect的时候,这个超时参数由connect(Socket ...

  9. jquery实现返回基部案例效果

    <!doctype html> <html> <head> <meta charset="gb2312"> <title> ...

  10. RPM -U 升级机制探索

    今天被RPM升级机制狠狠的阴了一把,差点没过来,趁着热乎赶紧记录下来,已被后用. RPM包有升级机制(Upgrade), 使用-U 参数.这点我之前略有耳闻,知道的并不详细. 先说说案例:半年前我们r ...