PHP 创建与解析 XML

//使用SimpleXML控制xml
//注意空格
$_xml =<<<xml
<?xml version="1.0" encoding="utf-8"?>
<root>
<version>1.0</version>
<info>xml解析测试</info>
<user>
<name>瓢城Web俱乐部</name>
<url>http://www.yc60.com</url>
<author sex="男">李炎恢</author>
</user>
<user>
<name>北风网</name>
<url>http://www.ibeifeng.com</url>
<author sex="女">谁谁谁</author>
</user>
<user>
<name>电驴</name>
<url>http://www.verycd.com</url>
<author sex="男">姓黄的</author>
</user>
</root>
xml;


$_sxe= new SimpleXMLElement($_xml); //创建对象解析xml字符串
$_sxe->asXML('test.xml'); //生成XML文件


//载入文件到解析XML文件
$_sxe= simplexml_load_file("test.xml"); //载入XML文件
var_dump($_sxe); //输出相关信息
print_r($_sxe); //输出主要信息
Reflection::export(new ReflectionClass($_sxe)); //用发射查看详情
echo $_sxe->asXML();//打印整个XML



//读出XML数据方法一:
$_sxe= simplexml_load_file("test.xml");//载入XML文件

//读取一级节点的值,比如version标签
echo $_sxe->version;

//如果有多个,可以设置它的数字下标
echo $_sxe->version[2];

//如果想要全部打印出来,可以用遍历
foreach ($_sxe->version as $_version) {
    echo '['.$_version.']'; 
}

//访问二级节点的name
echo $_sxe->user[1]->name;

//获取所有二级节点的name值
foreach ($_sxe->user as $_user) {
    echo '['.$_user->name.']'; 
}

//获取二级节点的标签的属性,比如标签里的sex="男"
echo $_sxe->user[1]->author->attributes();



5.读取XML数据方法二:使用XPath来获取节点
$_sxe= simplexml_load_file("test.xml");//载入XML文件

//使用XPath获取节点信息
$_version = $_sxe->xpath('/root/version');//获取到指定目录
echo $_version[1];

//遍历version
foreach ($_version as $_v) {
    echo '['.$_v.']'; 
}


//访问二级节点
$_user = $_sxe->xpath('/root/user');
echo $_user[2]->name;

//遍历二级节点
foreach ($_user as $_u) {
    echo '['.$_u->name.']'; 
}


//访问属性
echo $_user[1]->author->attributes();

 

//使用DOMDocument 操控XML

1.DOMDocument解析XML,读取xml,并遍历出来

//创建一个DOMDocument()
$_doc = new DOMDocument();

//载入xml
$_doc->load('test.xml');

//取version标签,nodeValue这个值换成其他的就是区代码或者区内容
$_version = $_doc->getElementsByTagName('version');
echo $_version->item(2)->nodeValue;

//遍历version标签
foreach ($_version as $v) {
    echo $v->nodeValue;
}



2.DOMDocument生成XML

//声明xml
$_doc = new DOMDocument('1.0','utf-8');

//排版格式
$_doc->formatOutput = true;

//创建一个主标签
$_root = $_doc->createElement('root');

//创建一个一级标签version
$_version = $_doc->createElement('version');

//给version标签里赋值
$_versionTextNode = $_doc->createTextNode('1.0');



//将值放入version标签里
$_version->appendChild($_versionTextNode);

//将一级标签version放入root里
$_root->appendChild($_version);

//将主标签写入xml
$_doc->appendChild($_root);

//生成xml
$_doc->save('aaa.xml');



 

 在李炎恢php课程第二季10-13课

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值