如何使用PHP编辑和删除XML中的特定节点
我浪费了很多时间尝试通过 php 编辑和删除 xml 文件中的特定节点。现在我成功删除了该节点,但是当我尝试编辑节点时,它只会更新最后一个节点。
我的 xml 文件如下:
<?xml version="1.0"?>
<reviews>
<product name="NokiaN9White">
<user name="testuser" id="02232012062451">
<username>[email protected]</username>
<date_post>23-02-2012</date_post>
<date_update>23-02-2012</date_update>
<review>Hello dear.</review>
</user>
<user name="testuser" id="02232012062521">
<username>[email protected]</username>
<date_post>23-02-2012</date_post>
<date_update>23-02-2012</date_update>
<review>Mrr</review>
</user>
<user name="testuser" id="02232012062523">
<username>[email protected]</username>
<date_post>23-02-2012</date_post>
<date_update>23-02-2012</date_update>
<review>adfasdf</review>
</user>
</product>
</reviews>
我编辑此数据的代码是:
$xmlDoc = new DOMDocument();
$xmlDoc->load(dirname(__FILE__)."/reviews.xml");
$products = $xmlDoc->getElementsByTagName( "product" );
foreach( $products as $product )
{
$prdoductN = $product->getAttribute( "name" );
if( $prdoductN == $product_name ){
$users = $product->getElementsByTagName( "user" );
$userR = get_userName($_SESSION['userName']);
foreach( $users as $user ){
$userName = $user->getAttribute( "name" );
$review_id = $user->getAttribute( "id" );
if( $userName == $userR && $review_id == $r_id ){
$current_date = date('d-m-Y');
$eventN = $user->getElementsByTagName("date_update");
$eventN->item(0)->nodeValue = $current_date;
$eventC = $user->getElementsByTagName("review");
$eventC->item(0)->nodeValue = $comments;
}
}
$xmlDoc->formatOutput = true;
//$xmlDoc->saveXML(); // This will return the XML as a string
$xmlDoc->save(dirname(__FILE__)."/reviews.xml");
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用 Zorba 提供的 PHP 扩展来实现您的示例:
您可以在 http://www.zorba-xquery.com/html/demo#2awjZFgWFxoIi7uE2J4HgwUQUuA=
有关如何使用 PHP 安装 XQuery 扩展的说明,请访问 http://www.zorba-xquery.com/html/entry/2011/12/27/PHP_Meets_XQuery
You can use the PHP extension provided by Zorba to implement your example:
You can try your example live at http://www.zorba-xquery.com/html/demo#2awjZFgWFxoIi7uE2J4HgwUQUuA=
Instruction on how to install the XQuery extension with PHP are available at http://www.zorba-xquery.com/html/entry/2011/12/27/PHP_Meets_XQuery