需要从一个XML文件里面, 把所有 <mytag> 的信息都拿到. 数出来有多少个 mytag.
ie) xml文件为:
<xml>
<release>
<mytag attribute1=1
       attribute2=2
       attribute3=3>
</mytag><mytag attribute1=1
       attribute2=2
       attribute3=3>
</mytag>
</release>
</xml>PHP code:
$tags = $releaseNode->getElementsByTagName("mytag");
if($counter < sizeof($tags))...我希望 sizeof($tags)=2. 但是好象现在它不是2.
想问一下,正确方法改怎么写? $tags 应该就是一个ARRAY, 每一个ELEMENT都是包含一个mytag的信息吧?
既然一共有两个 "mytag", 为什么 sizeof($tags) 不是2呢?

解决方案 »

  1.   

    if($counter < $tags->length)...DOMElement::getElementsByTagName()返回的是DOMNodeList类型,调用DOMNodeList::length来获取标签数量。
      

  2.   


    <?php
        $DOMDocument = new DOMDocument;
        $DOMDocument->loadXML("<root><foo>foobar</foo><foo>foobar#2</foo></root>");    $DOMNodeList = $DOMDocument->getElementsByTagName("foo");    var_dump($DOMNodeList->length, isset($DOMNodeList->length));
    ?>