안녕하세요!PHP 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>
지금 내가 특정 "아이를 모두 제거해야합니다 을 다음은 XML 샘플입니다 여기
YYYYMMDDHHMMSS
입니다 : ENDTIME ENDTIME "는 형식의 날짜입니다"(ENDTIME "특정 값과 같은 값을 현재 또는 간단히)는"그럼 오래 ""의 해당 요소 (. 포함 어린이) " 내 첫 시도 (성공) :
$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();
대단히 감사합니다.
안녕 다시 .. 당신에게 도움이되기를 바랍니다! 난 당신의 코드를 시도하고 여전히 작동하지 않습니다 : (나는 이해할 수 없다 ... 귀하의 코드에서 발견 한 유일한 문제는> {$ maxTime} 올바른 getAttribute ('ID');"그리고 나는 올바른 자식 ID를 볼 수 있지만 노드에서 제거하지 않는다 "echo $ doc-> saveXml() ; "결국 ... 어떤 제안이라도? 고마워! –
EranLevi