举例说,处理节点,javascript处理方法<div>123</div>
<script>
var a=document.getElementsByTagName("div").item(0).childNodes.item(0).nodeValue;
alert(a);
</script>但是php似乎省略了。。在操作xml节点里
大致的xml文档是
<book><author>123</author></book><book><author>345</author></book>$doc->load('./books.xml');
  
  $books = $doc->getElementsByTagName( "book" );
  foreach( $books as $book )
  {
  $authors = $book->getElementsByTagName( "author" );
  var_dump($authors->item(0)->nodeName));//看这里 打印出来是"author",元素节点理论上按js的说法nodeValue值是null,但是实际却是123,,这是怎么回事啊??
  $author = $authors->item(0)->nodeValue;  

解决方案 »

  1.   

    var a = document.getElementsByTagName("div").item(0).childNodes.item(1).innerHTML;
    alert(a);有点类似于var a = document.getElementsByTagName("span").item(0).innerHTML;
    似乎是得到的节点类型不同,处理方法也不同吧。
      

  2.   

    更奇怪的是var_dump($authors->item(0)->childNodes->item(0)->nodeValue);
    var_dump($authors->item(0)->nodeValue);
      打印出来的值居然是一样的,,这真是太意外了
      

  3.   

    上述第一个取文本节点的值第二个取元素节点的值由此我很有理由相信,在xml中文本节点和包含它的元素节点的值是一样的大家的看法呢
      

  4.   


    childNode和node中都会有类似与  #text, #comment这样的nodeName。没有研究过,不知道是不是这个原因造成的