一 、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_其他] Square Ice (poj1099 规律)

    Description Square Ice is a two-dimensional arrangement of water molecules H2O, with oxygen at the v ...

  2. apache 虚拟主机的配置

    一.基于IP 1. 假设服务器有个IP地址为192.168.1.10,使用ifconfig在同一个网络接口eth0上绑定3个IP: [root@localhost root]# ifconfig et ...

  3. 虚拟机VirtualBox中centos6.5网络设置

    一.虚拟机网络配置 默认只是设置了网卡1:方式NAT(对应ifcfg-eth0) 我们还可以设置网卡2,网卡3.可以在系统安装完成后设置. 网卡2设置回环网卡,实现虚拟机与宿主机组成局域网(对应ifc ...

  4. 【系统移植】JNI

    jni代码 java调用jni的接口: 1, 调用动态库 static{   System.loadLibrary("led_jni");  // system/lib/lible ...

  5. atitit.团队建设总结o6o fix

    atitit.团队建设o6o fix #----- 无限放大梦想 2 要有自己的方向...主动添加自己的东东.. 3 有几个tech site,能晓得最新的的知识.. 3 有问题多交流, 3 失败的造 ...

  6. 详解Bootstrap按钮组件(二)

    按钮下拉菜单 按钮下拉菜单仅从外观上看和下拉菜单效果基本上是一样的.它们唯一的不同是外部容器div.dropdown换成了div.btn-group <div class="btn-g ...

  7. android: SQLite更新数据

    学习完了如何向表中添加数据,接下来我们看看怎样才能修改表中已有的数据. SQLiteDatabase 中也是提供了一个非常好用的 update()方法用于对数据进行更新,这个方法 接收四个参数,第一个 ...

  8. Android的消息机制: Message/MessageQueue/Handler/Looper

    概览   * Message:消息.消息里面可包含简单数据.Object和Bundle,还可以包含一个Runnable(实际上可看做回调). * MessageQueue:消息队列,供Looper线程 ...

  9. ASP.NET Web API模型验证以及异常处理方式

    ASP.NET Web API的模型验证与ASP.NET MVC一样,都使用System.ComponentModel.DataAnnotations. 具体来说,比如有:[Required(Erro ...

  10. windows 2012 试用180天

    windows server 2012 官方下载,可以使用180天, 快到期的时候执行以下命令 slmgr.vbs -rearm