由于项目的需要头一编写php代码,如果读取xml。
在网上查了下,发现总是报错。
如下,我现在读取所有link节点的Title属性是可以的。但是想只读取news下面的linkTitle属性总是报错,谁能写帮忙写一个<?xml version="1.0" encoding="utf-8" ?>
<data>
<news url="http://www.aceona.com">
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/bbb.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/ccc.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/ddd.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/eee.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/fff.jpg"/>
</news>
<uli>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/ccc.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/ddd.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/eee.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/fff.jpg"/> </uli>
在网上查了下,发现总是报错。
如下,我现在读取所有link节点的Title属性是可以的。但是想只读取news下面的linkTitle属性总是报错,谁能写帮忙写一个<?xml version="1.0" encoding="utf-8" ?>
<data>
<news url="http://www.aceona.com">
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/bbb.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/ccc.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/ddd.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/eee.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/fff.jpg"/>
</news>
<uli>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/ccc.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/ddd.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/eee.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/fff.jpg"/> </uli>
//以下是读取所有的link节点
<?php
$dom = new DOMDocument();
if (!$dom->load('z.xml'))
{
echo "load books.xml failed!<br>";
return;
}
$bars = $dom->getElementsByTagName('bar');foreach ($bars as $bar)
{
$aa = $bar->getAttribute('attr');
echo $aa."<br />";
}
?>
//以下是读取所有的link节点,上面节点名写错了
<?php
$dom = new DOMDocument();
if (!$dom->load('z.xml'))
{
echo "load books.xml failed!<br>";
return;
}
$bars = $dom->getElementsByTagName('link');foreach ($bars as $bar)
{
$aa = $bar->getAttribute('title');
echo $aa."<br />";
}
?>
</data>
添加上 </data> 就可以读出 title 了
if (!$dom->load('books.xml'))
{
echo "load books.xml failed!<br>";
return;
}$foos = $dom->getElementsByTagName('foo');
$var = $foos->item(0)->getAttribute('xmlns');echo 'var=' . $var . '<br>';
$news=$dom->getElementsByTagName('news');
$bars = $news->getElementsByTagName('link');foreach ($bars as $bar)
{
$aa = $bar->getAttribute('title');
echo $aa."<br />";
}
?>
<?php
//以下是获取news下面的linkTitle属性
$dom = new DOMDocument();
if (!$dom->load('books.xml'))
{
echo "load books.xml failed!<br>";
return;
}
$news=$dom->getElementsByTagName('news');
$bars = $news->getElementsByTagName('link');foreach ($bars as $bar)
{
$aa = $bar->getAttribute('title');
echo $aa."<br />";
}
?>
这个是我发贴的时候掉了的,实际是有的,因为获取所有link的Title属性是好的<?xml version="1.0" encoding="utf-8" ?>
<data>
<news url="http://www.aceona.com">
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/bbb.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/ccc.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/ddd.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/eee.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/fff.jpg"/>
</news>
<uli>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/ccc.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/ddd.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/eee.jpg"/>
<link title="公司新开,全场优惠" url="http://www.163.com" img="images/fff.jpg"/> </uli>
</data>
<?php$dom = new DOMDocument();
if (!$dom->load('books.xml'))
{
echo "load books.xml failed!<br>";
return;
}
$news=$dom->getElementsByTagName('news');//下面这行提示错误Call to undefined method DOMNodeList::getElementsByTagName()
$bars = $news->getElementsByTagName('link');foreach ($bars as $bar)
{
$aa = $bar->getAttribute('title');
echo $aa."<br />";
}
?>
header("content-type:text/html;chartset=utf-8");
$dom = new DOMDocument();
if (!$dom->load('z.xml'))
{
echo "load books.xml failed!<br>";
return;
}
$bars = $dom->getElementsByTagName('news')->item(0);
$bars = $bars->getElementsByTagName('link');
foreach ($bars as $bar)
{
//var_dump( $bar); $aa = $bar->getAttribute('title');
echo $aa."<br />";
}
?>
不用奇怪了,他的代码本身是正确的,只是取的是所有的title,而不是news这一级下的title.