eader("content-type:text/html; charset=utf-8"); //设置编码
$xml = simplexml_load_file('a.xml'); //载入xml文件 $lists和xml文件的根节点是一样的
echo $xml->company."<br>";
echo $xml->town."<br>id:";
echo $xml->town['id']."<br>parent:";
echo $xml->town['parent']."<br>";
echo "<br>循环读取:<br>";
foreach($xml->user as $users){ //有多个user,取得的是数组,循环输出
echo "-------------------<br>";
echo "姓名:".$users->name."<br>";
echo "编号:".$users->age."<br>";
echo "性别:".$users->age['sex']."<br>";
echo "序号:".$users->height."<br>";
}
echo "<br>循环读取:<br>";
foreach($xml->town as $towns){ //有多个user,循环输出
echo "-------------------<br>";
echo "id:".$towns['id']."<br>";
echo "归属:".$towns['parent']."<br>";
echo "地区:".$towns."<br>";
}
希望本文所述对大家的PHP程序设计有所赞助.
《PHP中simplexml_load_file函数用法实例》是否对您有启发,欢迎查看更多与《PHP中simplexml_load_file函数用法实例》相关教程,学精学透。小编 jb51.cc为您提供精彩教程。

php 5.4 和5.3下的 simplexml_load_file
最近用php simplexml_load_file处理如下一段xml
发现 两个电脑上显示的不一样,一台php是5.4 一台是5.3 后来把其中一台改成5.3就一致了。
哪位大神知道 我在5.4下 怎么能用simplexml_load_file生成和5.3一样的内容
ps
5.4中 rowproperty下obj处理成0 了 而 5.3还是obj
回复讨论(解决方案)
你的数据是错误的,无法进行测试
不好意思 重新发过
确有此现象
但在
应该是 bug 吧

php simplexml_load_file 中文乱码的解决方法
中文乱码多半是编码导致的我们只要调整一下输出编码即可解决中文乱码问题,下面我们看simplexml_load_file中文乱码解决办法。
在php5.0 中,simplexml_load_file()是一个很好的读取和处理xml文件的函数,但是在读取和处理中文时会出现乱码,经过研究发现,如果是中文内容,必须经过iconv编码转换,否则显示为乱码。
代码如下 |
复制代码 |
$xml=simple_load_file(''xml文件'');
foreach($xml->soft as $temp){
echo $temp->name; //这就是软件名称了。
echo $temp->mem; //这就是软件说明了。
立即学习“PHP免费学习笔记(深入)”;
}
|
英文正确中文乱码,这个我估计就是编码问题了。
后来网上找到了相关文章,如核心一句
1、如果xml的encoding与文件类型不符,立刻报错
2、simplexml可以处理gbk的XML,即文件内容和encoding都为gbk(ANSI格式)
3、不管文件内容是什么,处理完了,都是UTF8.
具体方法如下:
代码如下 |
复制代码 |
$chname = iconv(''utf-8'', ''gb2312'', $table->param["name"]);
|
实现将编码为''utf-8''的XML文件内容转换为 gb2312 格式的内容。
中文编码采用gb2312格式输出。
还有一种办法本人没测试过直接摊贩页面编码转成uft8
代码如下 |
复制代码 |
header("Content-type: text/html; charset=utf-8");
//因为wordpress默认编码是utf-8,但IE默认识别为gb2312,所以用header发一下编码
$url="http://www.bKjia.c0m";
$xml = simplexml_load_file($url);
//载入远程XML文件
$title=$xml->channel->title;
//根据节点获取博客标题(不循环)
echo $title." ";
//如果节点循环了,可以用foreach循环取出
foreach($xml->channel->item as $item){
echo $item->title." ";
}
//循环取出文章标题
|

php simplexml_load_file 中文乱码的解决方法_PHP教程
中文乱码多半是编码导致的我们只要调整一下输出编码即可解决中文乱码问题,下面我们看simplexml_load_file中文乱码解决办法。
在php5.0 中,simplexml_load_file()是一个很好的读取和处理xml文件的函数,但是在读取和处理中文时会出现乱码,经过研究发现,如果是中文内容,必须经过iconv编码转换,否则显示为乱码。
代码如下 |
复制代码 |
$xml=simple_load_file(''xml文件'');
foreach($xml->soft as $temp){
echo $temp->name; //这就是软件名称了。
echo $temp->mem; //这就是软件说明了。
立即学习“PHP免费学习笔记(深入)”;
}
|
英文正确中文乱码,这个我估计就是编码问题了。
后来网上找到了相关文章,如核心一句
1、如果xml的encoding与文件类型不符,立刻报错
2、simplexml可以处理gbk的XML,即文件内容和encoding都为gbk(ANSI格式)
3、不管文件内容是什么,处理完了,都是UTF8.
具体方法如下:
代码如下 |
复制代码 |
$chname = iconv(''utf-8'', ''gb2312'', $table->param["name"]);
|
实现将编码为''utf-8''的XML文件内容转换为 gb2312 格式的内容。
中文编码采用gb2312格式输出。
还有一种办法本人没测试过直接摊贩页面编码转成uft8
代码如下 |
复制代码 |
header("Content-type: text/html; charset=utf-8");
//因为wordpress默认编码是utf-8,但IE默认识别为gb2312,所以用header发一下编码
$url="http://www.bKjia.c0m";
$xml = simplexml_load_file($url);
//载入远程XML文件
$title=$xml->channel->title;
//根据节点获取博客标题(不循环)
echo $title." ";
//如果节点循环了,可以用foreach循环取出
foreach($xml->channel->item as $item){
echo $item->title." ";
}
//循环取出文章标题
|
http://www.bkjia.com/PHPjc/632066.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632066.htmlTechArticle中文乱码多半是编码导致的我们只要调整一下输出编码即可解决中文乱码问题,下面我们看simplexml_load_file中文乱码解决办法。 在PHP5.0 中,...

php simplexml_load_file() 函数把 XML 文档载入对象中
simplexml_load_file()函数将指定的XML文件转换为SimpleXMLElement对象。
语法
PHP simplexml_load_file()函数具有以下语法。
simplexml_load_file(file,classname,options,ns,is_prefix);
参数
参数
是否必须
描述
文件
需要。
XML文件的路径
班级名称
可选的。
新对象的类
选项
可选的。
额外的Libxml参数。通过指定选项和1或0(TRUE或FALSE,例如LIBXML_NOBLANKS(1))来设置
ns
可选的。
命名空间前缀或URI
is_prefix
可选的。
布尔值。如果ns是前缀,则为TRUE。如果ns是URI,则为FALSE。默认值为FALSE
可能的值:
LIBXML_COMPACT - 激活节点分配优化(可加速应用程序)
LIBXML_DTDATTR - 设置默认DTD属性
LIBXML_DTDLOAD - 加载外部子集
LIBXML_DTDVALID - 使用DTD进行验证
LIBXML_NOBLANKS - 删除空白节点
LIBXML_NOCDATA - 将CDATA合并为文本节点
LIBXML_NOEMPTYTAG - 展开空标记(例如对
),仅在DOMDocument-> save()和DOMDocument-> saveXML()函数中可用
LIBXML_NOENT - 替代实体
LIBXML_NOERROR - 不显示错误报告
LIBXML_NONET - 加载文档时禁用网络访问
LIBXML_NowARNING - 不显示警告报告
LIBXML_NOXMLDECL - 保存文档时删除XML声明
LIBXML_NSCLEAN - 删除多余的命名空间声明
LIBXML_PARSEHUGE - 设置XML_PARSE_HUGE标志,放宽解析器的任何硬编码限制。这会影响极限,如文档的最大深度和文本节点大小的限制
LIBXML_XINCLUDE - 实现XInclude替换
LIBXML_ERR_ERROR - 获取可恢复的错误
LIBXML_ERR_FATAL - 获取致命错误
LIBXML_ERR_NONE - 获取无错误
LIBXML_ERR_WARNING - 获取简单的警告
LIBXML_VERSION - 获取libxml版本
LIBXML_DottED_VERSION - 获取点分的libxml版本
返回值
成功时返回SimpleXMLElement对象。失败时为FALSE。
实例
将XML文件转换为SimpleXMLElement对象,然后输出对象的键和元素。
假设我们有以下XML文件“note.xml”:
PHP
Java
PHP代码
<a href="https://www.jb51.cc/tag/PHP/" target="_blank">PHP</a>Jack
Publisher 1
PHP Book
XMLJane
Publisher 2
XML Book
上面的代码生成以下结果。
实例5
以下代码显示了如何检查元素是否为数组。
PHP
foreach ($xml->book as $book) {
echo '
' . $book->title . '
';echo '
if (is_array($book->author)) {
echo implode(',',$book->author);
} else {
echo $book->author;
}
echo '
';echo '
publisher . '
';echo '
';
echo '
' . $book->description . '
';}
?>
以下代码用于test.xml。
<a href="https://www.jb51.cc/tag/PHP/" target="_blank">PHP</a>Jack
Publisher 1
PHP Book
XMLJane
Publisher 2
XML Book
关于php中simplexml_load_file函数用法实例和php的implode的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于php 5.4 和5.3下的 simplexml_load_file、php simplexml_load_file 中文乱码的解决方法、php simplexml_load_file 中文乱码的解决方法_PHP教程、php simplexml_load_file() 函数把 XML 文档载入对象中的相关信息,请在本站寻找。