繁体   English   中英

使用PHP编辑和删除XML节点

[英]Editing and deleting XML nodes with PHP

我一直在环顾四周,但是在不使用simpleXML的情况下,仍然找不到使用php编辑和删除xml的可行答案(我希望我能使用它)。 我希望有人可以简单地为我分解它,因为我的大脑无法应付这些事情! 我必须使用的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号选择条目,然后删除整个条目,标签,数据,子项和全部。

听起来应该不太难,但是到目前为止,我使用的每个示例都无济于事。 有人可以在任何地方建议任何可能对我有帮助的教程吗?

非常感谢您的宝贵时间!

2种快速方法,均使用正则表达式:

  • 使用正则表达式将XML分解为数组,并以entryid的值为键
    • 在更新时,只需构造新值并替换指定键处的值
    • 在删除只是未设置
  • 使用正则表达式替换节点

对这两种情况的性能一无所知。 我会尝试提供一个正则表达式来帮助您。

加布里埃尔

好的,很抱歉,做了一些进一步的研究,并使用以下方法在此站点找到了一个很好的例子:

$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现在就像一个魅力! 难怪你们很困惑-感谢您的所有答复并容忍我的笨拙!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM