xml功能不能正常工作
问题描述:
<?php
class prices{
public $xml;
public $data;
public $xmlCount;
public $type_id;
function loadXml(){
/*
* Checks for xml file errors
*/
libxml_use_internal_errors(true);
$xml = simplexml_load_file('./lib/xml/items.xml');
if (!$xml){
echo "Failed Loading XML\n";
foreach(libxml_get_errors() as $error){
echo "\t", $error->message;
}
}
$xmlCount = count($xml->row);
/*
* Should belong in xmlToSql, but here to test, this code works within this function
*/
echo '<pre>';
echo count($xml->row);
echo $xml->row->{'type_id'};
/*
* Code to test xml output
* echo "<br />";
* print_r($xml);
* echo "<br />";
*print_r($xml);
*/
}
function xmlToSql(){
/*
* add sql code later, testing that xml is working correctly
*/
$this->loadXml();
/*
* This does not work in this function
* $type_id = $xml->row->{'type_id'};
*/
/*
* Should Display data
*/
echo $xml->row->{'type_id'};
}
}
?>
你好,我是PHP新手。我目前正处于这个项目的早期阶段。xml功能不能正常工作
Currenlty停留在这部分,看了一些关于XML的教程,并且成功有限。
当我在同一个类中调用xmlToSql函数中的函数loadXml时,我无法使用xml数据。我已经加入注释,我上面的代码,我希望它说明了什么我想才达到的,我想用这个...
echo $xml->row->{'type_id'};
在功能xmlToSql
。
我假设我犯了一个愚蠢的错误。
我希望得到任何帮助
答
对不起已经错过了昨天的东西......很明显
当你调用$this->loadXml()
,变量$xml
不被存储到对象属性$this->xml
,并超出范围时您尝试访问$xml->row
。
商店成$this->xml
然后相应地访问它里面$this->xmlToSql()
:
什么是您的XML文件是什么样子?可能需要访问数组元素,如'echo $ xml-> row [0] - > {'type_id'};' – 2012-02-18 21:41:37
该代码在载入xml文件的loadXml()中工作。 XML看起来像这样'|
' –
2012-02-18 22:08:49
当我添加此'回声$ XML->行[0] - > { 'TYPE_ID'};''到xmlToSql()'我得到这个错误'尝试获取非对象的属性。看起来'$ xml'可扩展名不是被分配了xml数据。 – 2012-02-19 08:40:48