Düğüm SimpleXML kullanarak kardeşleri varsa bul

4 Cevap php

Belirli bir düğüm kardeşleri varsa bulmaya yaşıyorum, ve eğer, ben bu kardeşler ne olduğunu bilmek istiyorum.

Bu mümkün mü?

4 Cevap

Bir düğümün kardeşleri seçmek için, size gelen XPath balta kullanmak zorunda. İşte (düğüm kendisi görmezden) tüm düğümün kardeşleri seçmek için nasıl

$siblings = $node->xpath('preceding-sibling::* | following-sibling::*');

Yapmanız gereken tek şey bu.

Ben XPath kullanarak burada en iyi bahis olduğunu düşünüyorum:

<?php
$string = <<<XML
<?xml version='1.0'?>
<document>
 <title>Forty What?</title>
 <from>Joe</from>
 <to>Jane</to>
 <body>
  I know that's the answer -- but what's the question?
 </body>
</document>
XML;

function get_all_siblings(SimpleXMLElement $node)
{
  return $node->xpath('preceding-sibling::* | following-sibling::*');
}

$xml = simplexml_load_string($string);

foreach (get_all_siblings($xml->to) as $e)
  echo $e->getName()."\n";    
?>

Sonuçlar:

title
from
body
$xml = new SimpleXMLElement($xmlstr);
$xmlNode = $xml->xpath('root/yourNodeName');
$nodeCount = count($xmlNode); 

Bu hala sizin için yararlı olup olmadığından emin değil