使用php在xml文件中工作

时间:2012-06-21 11:34:00

标签: php xml

  

可能重复:
  A simple program to CRUD node and node values of xml file

我想用php更改xml文件中的一些数据。

所以在我的xml文件中我有这个:

 <items><item href="p002.xhtml" id="p002" media-type="application/xhtml+xml"/>
 <item href="img/b002.jpg" id="b002" media-type="image/jpeg"/>
 <item href="p003.xhtml" id="p003" media-type="application/xhtml+xml"/>
 <item href="img/b003.jpg" id="b003" media-type="image/jpeg"/>
 <item href="p004.xhtml" id="p004" media-type="application/xhtml+xml"/>
 <item href="img/b004.jpg" id="b004" media-type="image/jpeg"/>
 <item href="p005.xhtml" id="p005" media-type="application/xhtml+xml"/>
 <item href="img/b005.jpg" id="b005" media-type="image/jpeg"/></items>

我想打开文件,删除大于0003的所有项目并保存更改。我在这个摘录之间有一些标签。

结果:

 <items><item href="p002.xhtml" id="p002" media-type="application/xhtml+xml"/>
 <item href="img/b002.jpg" id="b002" media-type="image/jpeg"/>
 <item href="p003.xhtml" id="p003" media-type="application/xhtml+xml"/>
 <item href="img/b003.jpg" id="b003" media-type="image/jpeg"/></items>

尝试:

if( ! $xml = simplexml_load_file("pack.xml") ) { 
    echo 'unable to load XML file'; 
} 
else { 
echo "<ul>";
    foreach($xml->items->item as $v ){
        //echo "<li>".$v[href]."</li>";
        if($v[href]=="p003.xhtml" || $v[href]=="img/bg003.jpg"){
            echo "<li>".$v[href]."</li>";
        }

    }
echo "</ul>";
} 

如何检查大于p003.xhtml和img / bg003.jpg?

1 个答案:

答案 0 :(得分:1)

您将要使用simplexml解析文件。这将生成一组很好的DOM类,供您使用。从这些类中,您可以使用您的条件搜索元素,并在将xml树保存回文本

之前将其删除