PHP:DOM获取<;xxx/>;在<;李>;要素

PHP:DOM获取<;xxx/>;在<;李>;要素,php,dom,Php,Dom,如何检查“li”元素中是否有“star”元素,并获取star元素的计数 <random> <li> Blah blah <star item="1"/> blah <star item="2"/> Blah blah blah </li> <li> Blah blah Blah blah blah </li> </random> 试试这个 $d

如何检查“
li
”元素中是否有“
star
”元素,并获取star元素的计数

<random>
  <li>
      Blah blah <star item="1"/> blah <star item="2"/> Blah blah blah
  </li>
  <li>
      Blah blah Blah blah blah
  </li>
</random>
试试这个

        $dom = new DOMDocument;
    $dom->loadXML($ul);

    $liElements = $dom->getElementsByTagName('li');
    $liCount = $dom->getElementsByTagName('li')->length;
    // Select a random li
    $useThisItem = rand(0, $liCount-1);

    $liToProcess = $liElements->item($useThisItem)->nodeValue;
    // This echo will output 'Blah blah blah Blah blah blah' (if first li is selected)
    echo $liElements->item($useThisItem)->childNodes->length . "<br>";
    $noStars = 0;
        if($liElements->item($useThisItem)->childNodes->length > 1) {

           foreach($liElements->item($useThisItem)->childNodes as $cN) {
               if(isset($cN->tagName) && ($cN->tagName === "star") ){
                   // echo $cN->tagName . "<br/>"; 
                   $noStars++;
               }
           }   
        }        


    echo "li: " . $liToProcess . "<br/>\n";
    echo "No of Stars = $noStars <br/>\n";
$dom=新的DOMDocument;
$dom->loadXML($ul);
$liElements=$dom->getElementsByTagName('li');
$liCount=$dom->getElementsByTagName('li')->长度;
//选择一个随机变量
$useThisItem=rand(0,$liCount-1);
$liToProcess=$liElements->item($useThisItem)->nodeValue;
//此回音将输出“诸如此类诸如此类”(如果选择了第一个li)
echo$liElements->item($useThisItem)->childNodes->length。“
”; $noStars=0; 如果($liElements->item($useThisItem)->childNodes->length>1){ foreach($liElements->item($useThisItem)->childNodes作为$cN){ 如果(isset($cN->标记名)&&($cN->标记名==“星形”)){ //echo$cN->标记名“
”; $noStars++; } } } 回声“李:”$利托过程。“
\n”; echo“星星数=$noStars
\n”;
        $dom = new DOMDocument;
    $dom->loadXML($ul);

    $liElements = $dom->getElementsByTagName('li');
    $liCount = $dom->getElementsByTagName('li')->length;
    // Select a random li
    $useThisItem = rand(0, $liCount-1);

    $liToProcess = $liElements->item($useThisItem)->nodeValue;
    // This echo will output 'Blah blah blah Blah blah blah' (if first li is selected)
    echo $liElements->item($useThisItem)->childNodes->length . "<br>";
    $noStars = 0;
        if($liElements->item($useThisItem)->childNodes->length > 1) {

           foreach($liElements->item($useThisItem)->childNodes as $cN) {
               if(isset($cN->tagName) && ($cN->tagName === "star") ){
                   // echo $cN->tagName . "<br/>"; 
                   $noStars++;
               }
           }   
        }        


    echo "li: " . $liToProcess . "<br/>\n";
    echo "No of Stars = $noStars <br/>\n";