$modfile=AddSale($xmlfile,"1004","洗衣机","2006-10-23","2100","7");
创新互联是专业的华蓥网站建设公司,华蓥接单;提供网站设计、网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行华蓥网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
好好看看,最后一个逗号是中文标点,这不出错才叫怪。
解析这样的XML的类就没有写过,函数的话就有,建议你最好是将这个XML整体解析到一个PHP数组里面后再对数组进行操作,操作完了,再写个由数组生成XML文件的函数就行了,不过写成类也是一样的,就三方法,XMLtoArray/ArraytoXMLString/makeXML 就可以搞定了,
if ( file_exists ( 'out.xml' )) {
$xml = simplexml_load_file ( 'out.xml' );
foreach ($xml-pic-list as $key = $value) {
$attr = (array) $value-attributes ();
var_dump($attr['@attributes']['smallinfo']);
}
} else {
exit( 'Failed to open test.xml.' );
} 这个只能取到里面的值 想改里面的值建议去下个simple_html_dom或者phpQuery
一个简单的方法是模式匹配,例子程序代码如下:
?php
$str='areas
area mc_name="CN_AH" title="安徽:0"/area
area mc_name="CN_BJ" title="北京:0"/area
area mc_name="CN_CQ" title="重庆:0"/area
area mc_name="CN_FJ" title="福建:0"/area
area mc_name="CN_GS" title="甘肃"/area
/areas';
$arr = array(
'安徽' =1,
'北京' =2,
'重庆' =3);
foreach ($arr as $k = $v){
$str=preg_replace("|title=\"$k:\d+\"|","title=\"$k:$v\"",$str);
}
echo $str;
?
更完美的办法是使用XML系列函数,把XML转换为PHP对象,然后修改,不过很麻烦,对你这样的简单XML没必要那么做。
$xml_doc = new DOMDocument;
$xml_doc-load("****.xml");//这里填写你的xml文件
$user_info = $xml_doc-documentElement-getElementsByTagName("add");//关键是你的xml文件里是不是只有这一个userinfo节点,给你个示例,多个的话针对你想要改的,加上判断语句
foreach ($user_info as $value){
if( $value-getAttribute("key")=="state"){
$value-setAttribute("value",200);
}
if($value-getAttribute("key")=="nickname"){
$value-setAttribute("value","一等录");
}
}
$xml_doc-save("****.xml");
?php $xml = new DOMDocument(); $xml-load('playlist.xml'); foreach($xml-getElementsByTagName('title') as $list) { $value = $list-nodeValue; if ($value == 'SONGA') { $value="123456789"; $xml-save( 'playlist.xml'); } echo $value." br /"; } ? 试试?