以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  php读xml问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=48301)


--  作者:mfdh
--  发布时间:6/10/2007 5:58:00 AM

--  php读xml问题
getElementsByTagName是读,这个点所有子孙的内容,如果名字符合,就列出来。请问,如何只读符合条件的孩子的内容,孙子以后的包括孙子都不读。

比如下面的例子,应该只列出2行内容,但是按照这个xml结构,就列出3个了。怎么办,谢谢。(其中,xxx,yyy,zzz不应该列出来)


<books>
  <book>
    <author name="hehe">Jack Herrington</author>
    <title>PHP Hacks</title>
    <publisher>O'Reilly</publisher>
  <book>
    <author>xxx</author>
    <title>yyy</title>
    <publisher>zzz</publisher>
  </book>    
  </book>
  <book>
    <author>Jack Herrington</author>
    <title>Podcasting Hacks</title>
    <publisher>O'Reilly</publisher>
  </book>
</books>

php代码:
<?php
  $doc = new DOMDocument();
  $doc->load( 'books.xml' );
  $books = $doc->getElementsByTagName( "book" );
  foreach( $books as $book )
  {
  $authors = $book->getElementsByTagName( "author" );
  $author = $authors->item(0)->nodeValue;
  $publishers = $book->getElementsByTagName( "publisher" );
  $publisher = $publishers->item(0)->nodeValue;
  $titles = $book->getElementsByTagName( "title" );
  $title = $titles->item(0)->nodeValue;
  echo "$title - $author - $publisher<br/>\n";
  }
  ?>


--  作者:vikie
--  发布时间:7/6/2007 6:01:00 PM

--  
你取books的子节点不就行了吗
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
1,273.438ms