[英]Editing one XML node value in PHP
我有一个与此类似的XML文件:
<?xml version='1.0'?>
<page>
<desc><title>user</title><username>user</username>
<petcount>0</petcount>
<pagedt><![CDATA[<html><body><p><center><h2>I am amazing.</h2></center>
</p></body></html>]]></pagedt></desc>
<petlist></petlist><friends></friends><messages><message><user>Admin</user><link>/admin</link>
<note>Welcome to My website!</note></message></messages></page>
我试图让PHP仅编辑<pagedt>
的文本,并拥有一个textarea来显示文件中当前的内容,到目前为止,我具有包含该textarea的内容,并以phpself和via的形式运行发布。 关于如何仅编辑pagedt内容的任何想法?
您是否尝试过将其解析为XML? 我知道PHP的DOM库允许您将其解析为一个对象,您可以使用该对象从该对象返回pagedt标记和文本内容。 尝试从这里开始:
假设PHP可以读写文件,那么您所需要的只是XML解析器或匹配<pagedt>
内部内容的正则表达式 ,如下所示:
$fcontent=file_get_contents("file.xml");
$content=array();
preg_match("/^(.*<pagedt>)(.*)(</pagedt>.*)\$/", $fcontent, $content);
//do your stuff on $content[2], which contains what's between <pagedt> and </pagedt>
file_put_contents("file.xml", $content[1].$content[2].$content[3]);
除了正则表达式,您还可以使用String函数(例如strstr
)或将strpos
和substr
组合在一起。 但这没什么好玩的;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.