PHP---XML--simpleXML

来源:互联网 发布:2016中国人工智能大会 编辑:程序博客网 时间:2024/04/30 19:42
PHP 对xml进行操作,常用有3种技术
1.dom------文档对象模型,核心思想,把一个xml文件看成一个对象模型,通过对象的方式操作xml文件
2.php结合xpath

3.SimpleXml


xpath是可以非常方便的索引到你需要的节点,而且xpath也可以和simpleXML结合使用。比如:

<?php
//1.创建DOMDocument对象
$xmldoc= new DOMDocument();
//2.加载xml
$xmldoc->load("xpath.xml");
//3.转成DOMXPATH
$domXPATH= new DOMXPATH($xmldoc);
//4.使用xpath技术来定位查询你希望的节点
$node_list=$domXPATH->query("//*");//得到所有的节点数据
//echo $node_list->length;
for($i=0;$i<$node_list->length;$i++){
$node=$node_list->item($i);
echo $node->tagName."<br/>";
}
?>

具体的使用方法可以参见xpath的手册。



simpleXML可以简化对xml的操作,读入XML文件后,可以把XML文件生成对象数组,简化对节点的存取。

simplexml可以有3种方式装载xml文件
1.直接装载xml文件
2.装载dom对象
3.装载string(该string要求按xml格式书写)


//simplexml载入对象后,得到的是个对象数组
//装载一个xml文件
$lib=simplexml_load_file("books.xml");
//books是一个数组
$books=$lib->book;
//取出第一本书
//$book=$books[0];
//取出书名
//echo $book->title;
for($i=0;$i<count($books);$i++){
$book=$books[$i];
//取出元素值
echo $book->title."===".$book->price."===".$book->author."<br/>";
//取出属性值
echo $book['house']."<br/>";
}
//simplexml 可以和xpath结合使用,xpath的方法请参见手册
$titles=$lib->xpath("//title");//取出所有title的值
echo "<br/>=========xpath和simplexml结合使用==============";
foreach($titles as $key =>$val){
echo "<br/>".$val;
}
//simplexml除了装载xml外,也可以装载dom对象
//simplexml也可以装载字符串(xml规范)
//    <<<XML XML是用于可以简单地处理字符中有"  ' 的情况
$string = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<books>
<book house="清华出版社" house2="机械出版社">
<code>sb001</code>
<price>200</price>
<author>大明</author>
<title>天龙八部</title>
</book>
<book house="北大出版社" house2="电子出版社">
<code>sb002</code>
<price>400</price>
<author>小明</author>
<title>神雕侠侣</title>
</book>
</books>
XML;

$xml = simplexml_load_string($string);;
foreach($xml->xpath("//title") as $key =>$title){
echo "$title<br/>";
}
print_r($xml);


需要注意一下!!!

如果使用string方式装载simpleXML的话,格式是<<<XML。。。。。。 XML,中间的省略号是内容,需要按照xml格式书写,<<<xml和内容之间推荐使用回车间隔,如果使用空格,会提示格式错误。内容和最后结束的XML之间用回车间隔,不要使用空格,会提示格式错误

0 0
原创粉丝点击