2010-11-23 225 views
0

我一直在环顾四周,但仍然无法找到一个可行的答案来编辑和删除XML与PHP没有使用simpleXML(我多么希望我可以使用它)。我希望有人可以为我简单分解它,因为我的大脑不适应这种东西! XML文件我有工作看起来是这样的:用PHP编辑和删除XML节点

<allentries> 
    <entry> 
    <entryid>1</entryid> 
    <title>This is the title</title> 
    <date>2010</date> 
    <author>Some Guy</author> 
    </entry> 
    <entry> 
    <entryid>2</entryid> 
    <title>This is Another title</title> 
    <date>2011</date> 
    <author>Some Other Guy</author> 
    </entry> 
    <entry> 
    <entryid>3</entryid> 
    <title>This is the other title</title> 
    <date>2012</date> 
    <author>And Another Guy</author> 
    </entry> 
</allentries> 

我需要能够做两件事情用PHP - 首先,我需要能够接受从形式发布的价值观,选择正确的条目根据entryid编号并使用新数据修改该条目中的每个元素。例如。如果entryid = 2,则跳至第二个条目,并将标题,日期和作者中的文本替换为新数据。

我需要做的第二件事情(具有明显不同的功能)是根据entryid号码选择条目并删除整个条目,标签,数据,子代和所有条目。

听起来好像不应该太难,但我迄今为止使用的每个示例都没有做任何事情。任何人都可以提出任何可以帮助我的任何地方或任何其他教程吗?

非常感谢您的时间!

+1

请您澄清一下为什么您不能使用SimpleXML,以及您是否可以使用任何其他[可用的XML扩展](http://de2.php.net/manual/en/refs.xml.php),最好是[ DOM(http://de2.php.net/manual/en/book.dom.php)? – Gordon 2010-11-23 08:39:49

+0

我没有访问权限来更改xml文件 - 我的印象是,您需要添加顶部/尾部标签以使XML读取为字符串,以便与simplexml一起使用 - 任何不需要我的扩展更改xml文件会很好,我认为 – HappyNuclear 2010-11-23 09:33:41

回答

0

2种快捷方式,既使用正则表达式:

  • 休息使用正则表达式的XML数组,用的EntryID关键
    • 上更新的价值只是构建新的价值和更换在指定的关键
    • 上删除正好被清除
  • 使用正则表达式的值来代替节点

不知道这两种情况下的性能。我会尽量提供一个正则表达式来帮助你。

加布里埃尔

0

好了,不好意思,做了一些进一步的研究和利用找到了一个很好的例子,在this site

$xml_file = "thefile.xml"; 
if(!$xml=simplexml_load_file($xml_file)){ 
    trigger_error('Error reading XML file',E_USER_ERROR); 
} 

simplexml_load_file而不是simplexml_load_string作品就像一个魅力吧!难怪你们感到困惑 - 谢谢你们的回复,并容忍我的无辜!