使用xml的一个问题

一只老菜鸟 2010-08-02 09:25:48
myxml.xml如下

<data>
<item itemid="1" image="btn1.jpg" title="图1" />
<item itemid="2" image="btn2.jpg" title="图2" />
<item itemid="3" image="btn3.jpg" title="图3" />
</data>

myxml.php如下

$xmlurl = "myxml.xml";
$xmlstr = file_get_contents($xmlurl);
if(!$xmlstr) halt("数据读取错误,请确认文件是否存在");
$xml = new SimpleXMLElement($xmlstr);
$sliders = array();
foreach ($xml->item as $item){
$slider = array('itemid'=>'','image'=>'','title'=>'');
$slider["itemid"] = $item["itemid"];
$slider["image"] = $item["image"];
$slider["title"] = $item["title"];
$sliders[]= $slider;
}


到了实例化那一步就不能运行了。
用var_dump($xml),也无效,页面空白,没有任何错误提示。
echo $xmlstr却完全正常。。

谁帮我看下是什么问题??
php5.2.6
freebsd 7.2
...全文
53 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
一只老菜鸟 2010-08-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 amani11 的回复:]
PHP code



$str ='
<data>
<item itemid="1" image="btn1.jpg" title="图1" />
<item itemid="2" image="btn2.jpg" title="图2" />
<item itemid="3" image="btn3.jpg" title="图3" />
</data>
';
$……
[/Quote]

现在问题应该出在$xml = new SimpleXMLElement($str);
这一行上。。。
至于下面的循环,我在windows下一样可以取到值的。
一只老菜鸟 2010-08-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cunningboy 的回复:]
myxml.xml文件中的数据有没有问题?改成下面试试:

PHP code
<?php
$xmlurl = "myxml.xml";
$xml = new SimpleXMLElement($xmlurl, NULL, TRUE);
var_dump($xml);
$sliders = array();
foreach ($xml->item as $item){
$s……
[/Quote]

Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: I/O warning : failed to load external entity "<data> <item itemid="1" image="btn1.jpg" title="焦点图1" /> <item itemid="2" image="btn2.jpg" title="焦点图2" /> <item itemid="3" image="btn3.jpg" title="焦点图3" /> </data>" in G:\wwwroot\Projects\myxml.php on line 13
一只老菜鸟 2010-08-03
  • 打赏
  • 举报
回复
在windows下,也是可以取到值的。但是到了freebsd下就不行啦。
amani11 2010-08-02
  • 打赏
  • 举报
回复



$str ='
<data>
<item itemid="1" image="btn1.jpg" title="图1" />
<item itemid="2" image="btn2.jpg" title="图2" />
<item itemid="3" image="btn3.jpg" title="图3" />
</data>
';
$xml = new SimpleXMLElement($str);
foreach($xml->item AS $k => $x)//可以这样取值
{
foreach($x->attributes() AS $key => $val)
{
echo $key . '=>' . $val . '<br />';
}
}


CunningBoy 2010-08-02
  • 打赏
  • 举报
回复
myxml.xml文件中的数据有没有问题?改成下面试试:
<?php
$xmlurl = "myxml.xml";
$xml = new SimpleXMLElement($xmlurl, NULL, TRUE);
var_dump($xml);
$sliders = array();
foreach ($xml->item as $item){
$slider = array('itemid'=>'','image'=>'','title'=>'');
$slider["itemid"] = $item["itemid"];
$slider["image"] = $item["image"];
$slider["title"] = $item["title"];
$sliders[]= $slider;
}
?>

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧