繁体   English   中英

在PHP中编辑一个XML节点值

[英]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标记和文本内容。 尝试从这里开始:

http://www.php.net/manual/zh/book.dom.php

假设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 )或将strpossubstr组合在一起。 但这没什么好玩的;)

暂无
暂无

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

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