0
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");
}
}
에서 사용할 수 있습니다. 난 단지 PHP 로이 일을해야합니다. –