十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
你好,PHP操作XML新人为你解答!
创新互联公司主营西城网站建设的网络公司,主营网站建设方案,手机APP定制开发,西城h5成都小程序开发搭建,西城网站营销推广欢迎西城等地区企业咨询
$xml = simplexml_load_file($xmlsrc);//初始化并获取其根
//看得出来,你的user要插入到根的下一层,那么就不必进行循环索引了,因为根已经获取到了
$user = $xml-addChild("user", "");//在$xml节点下插入名为user的节点,且必须赋值,这里因为没有值,所以就留空,但不能不写。
//然后再在user节点下插入节点,这里已经把user节点赋给$user了
$name = $user-addChild("name", $_POST["name"]);//把接收到的name值添加到user节点下的name节点中,下同
$sex = $user-addChild("sex", $_POST["sex"]);//因为这里的name和sex添加后不再用了,可以不把节点赋值出来,即不须写上$sex=
$hei = $user-addChild("height", $_POST["height"]);
$hei-addAttribute("type", "cm");//给height节点添加属性
这个SimpleXML我昨天才开始学,感觉挺不错的样子,操作代码直观,可读性强,多用用熟练了就好
我知道一个比较笨的方法 利用php控制文件的方式 将整个xml文件读入一个变量, 然后用str_replace(正则表达式) 去匹配拆分成数组 最后 连接数组 连接时 加入你要新增的元素
或者
用php 内置的xml 语法解析函数 通常不太好用 可以去找一些国外的 xml 解析器的二次封装
php入门者飘过~~~
1.xml:
?xml version="1.0" encoding="utf-8"?
vip
user
email/email
time2016-05-31/time
ip127.0.0.1/ip
/user
/vip
php:
?php
$xmlstr = file_get_contents('1.xml');
$users = new SimpleXMLElement($xmlstr);
$user = $users-addChild('user');
$user-addChild('email', 'test');
$user-addChild('time', 'test');
$user-addChild('ip', '127.0.0.1');
$users-asXML();
file_put_contents('1.xml', $users-asXML());
应该是这样:
$doc = new DOMDocument();
$doc-load( "pic.xml");
//这里你要获取他的第一个tag,因为getElementsByTagName获取的结果是个数组对象
$folder = $doc-getElementsByTagName("folder") - item(0);
$new_file=$doc-createElement("file");
$pname = $doc - createAttribute('pname');
$pclass = $doc - createAttribute('class');
$pcar = $doc - createAttribute('pcar');
$newspname = $doc - createTextNode($name);
$newspclass = $doc - createTextNode($_POST['Sclass']);
$newspcar = $doc - createTextNode($_POST['Scar']);
$pname - appendChild($newspname);
$pclass - appendChild($newspclass);
$pcar - appendChild($newspcar);
$new_file - appendChild($pname);
$new_file - appendChild($pclass);
$new_file - appendChild($pcar);
$folder - appendChild($new_file);
//$doc -appendChild($folder);//前面已经append了,就不需要在append了
$doc - save("pic.xml");
最后第二句添加有错 应该这样写:
$a=$doc-createElement('a'); //定义一个a标签
$a_text=$doc-createTextNode("0000000000"); //给a标签一个值
$a-appendChild($a_text); //把值加载到a标签
$id=$doc-createAttribute('id'); //定义一个id属性
$id_text=$doc-createTextNode("xxx"); //给id属性一个值
$id-appendChild($id_text); //把值加载到id属性中
$a-appendChild($id); //把id属性加载到a标签中
$php100-appendChild($a); //把a标签加载到php100标签中