こんにちは!
問題があります。1 つの Child 値に従って Element (With childs) を削除しようとしています。XML サンプルは次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<Businesses>
<Business NAME="busin1">
<CHILD ID="30"><title>child Title</title>
<description>Child Description</description>
<urlToSite>http://www.MySite.co.il</urlToSite>
<endtime>20120720103000</endtime>
<starttime>20120710191500</starttime>
</CHILD>
<CHILD>...</CHILD>
<CHILD>...</CHILD>
</Business>
</Businesses>
ここで、特定の「CHILD」要素 (子を含む) のすべてを削除する必要があります。その「endtime」値は現在よりも古いです (または単に「endtime」が特定の値に等しい)。
「endtime」は、yyyymmddHHMMSS 形式の日付です。
これが私の最初の試みです(成功せずに):
$doc = new DOMDocument;
$doc->load('MyXML.xml'); //The XML Above
$thedocument = $doc->documentElement;
//this gives you a list of the childs
$list = $thedocument->getElementsByTagName('CHILD');
//figure out which ones you want -- assign it to a variable (ie: $nodeToRemove )
$nodeToRemove = null;
$time=date("YmdHis",time ());
foreach ($list as $domElement){
$attrValue = $domElement->childNodes->item('endtime')->nodeValue; //not Sure about this!!
if ($attrValue > $time) {
$nodeToRemove = $domElement;
}
}
//Now remove it.
if ($nodeToRemove != null)
$thedocument->removeChild($nodeToRemove);
echo $doc->saveXML();
どうもありがとうございます!