首页 > 后端开发 > 正文

php中,loadxml()用法 php解析xml问题?

2024-11-30 08:28:39 | 我爱编程网

php中,loadxml()用法 php解析xml问题?很多朋友对这方面很关心,我爱编程网整理了相关文章,供大家参考,一起来看一下吧!

本文目录一览:

php中,loadxml()用法 php解析xml问题?

php中,loadxml()用法

1.定义和用法
simplexml_load_file() 函数把 XML 文档载入对象中。
如果失败,则返回 false。

2.语法
simplexml_load_file(file,class,options,ns,is_prefix)参数 描述
file 必需。规定要使用的 XML 文档。
class 可选。规定新对象的 class。
options 可选。规定附加的 Libxml 参数。
ns 可选。
is_prefix 可选。

3.实例
例子 1. Interpret an XML document
代码如下
<?php
// The file test.xml contains an XML document with a root element
// and at least an element /[root]/title.

if (file_exists('test.xml')) {
$xml = simplexml_load_file('test.xml');

var_dump($xml);
} else {
exit('Failed to open test.xml.');
}
?>

This script will display, on success:

SimpleXMLElement Object
(
[title] => Example Title
...
)

php中,loadxml()用法 php解析xml问题?

求几个xml+php的源码,越简单越好

两个,第二个简单一点
1、xml+php动态载入与分页

//$this->iGlobal($vars,$cookie);
$this->outPut($vars,$cookie);
}

//function _shoplist_res(){
// $this->db->Close();
//}
function outPut($vars,$cookie){
/*$strQuery = "select count(*) as rc from ".$this->db_c->Db_Pre."pshop order by id desc";
$this->db->Query($strQuery);
$RecordCount = $this->db->Assoc();
$RecordCount = $RecordCount['rc'];
@$this->db->freeResult();*/
$RecordCount = 25;
if (empty($vars['pageNo'])) $vars['pageNo']= 1;
if (empty($vars['pageSize'])) $vars['pageSize']= 10;
$PageCount = ceil($RecordCount/$vars['pageSize']);
if ($vars['pageSize']>$RecordCount) $vars['pageSize']=$RecordCount;
if ($vars['pageNo']>$PageCount) $vars['pageNo']=$PageCount;
$xmlStr.= "<?xml version=\"1.0\" encoding=\"GBK\" ?>"."\n";
$xmlStr.= "<商铺列表>"."\n";
$xmlStr.= "\t<翻页工具 pageNo=\"".$vars['pageNo']."\" pageSize=\"".$vars['pageSize']."\" total=\"".$RecordCount."\"></翻页工具>"."\n";
$xmlStr.= "\t<页号码>".$vars['pageNo']."</页号码>"."\n";
$xmlStr.= "\t<页大小>".$vars['pageSize']."</页大小>"."\n";
$xmlStr.= "\t<数量>".$RecordCount."</数量>"."\n";
$xmlStr.= "\t<页数量>".$PageCount."</页数量>"."\n";
//$strQuery = "select t1.*,t2.* from ".$this->db_c->Db_Pre."pshop as t1,".$this->db_c->Db_Pre."shoptype as t2 where t1.typenum=t2.typenum order by id desc "
// ."limit ".($vars['pageNo']-1)*$vars['pageSize'].",".$vars['pageSize'];
//die($strQuery);
//$this->db->Query($strQuery);
/*while($result = $this->db->Assoc()){
$xmlStr.= "\t"."\n";
$xmlStr.= "\t<商铺>"."\n";
$xmlStr.= "\t\t<名称><![CDATA[".$result['shopname']."]]></名称>"."\n";
$xmlStr.= "\t\t<经营人><![CDATA[".$result['shopmaster']."]]></经营人>"."\n";
$xmlStr.= "\t\t<级别><![CDATA[".$result['shoptype']."]]></级别>"."\n";
$xmlStr.= "\t\t<简介><![CDATA[".$result['shopintro']."]]></简介>"."\n";
$xmlStr.= "\t\t<连接地址><![CDATA[personal_shop.php?id=".$result['id']."]]></连接地址>"."\n";
$xmlStr.= "\t</商铺>"."\n";
}*/
$sc= $vars['pageNo']*$vars['pageSize'];
if ($sc>$RecordCount) $sc = $RecordCount;
for($i=($vars['pageNo']-1)*$vars['pageSize'];$i<$sc;$i++){
$xmlStr.= "\t"."\n";
$xmlStr.= "\t<商铺>"."\n";
$xmlStr.= "\t\t<名称><![CDATA[这是名称:".$i."]]></名称>"."\n";
$xmlStr.= "\t\t<经营人><![CDATA[这是经营人:".$i."]]></经营人>"."\n";
$xmlStr.= "\t\t<级别><![CDATA[这是级别:".$i."]]></级别>"."\n";
$xmlStr.= "\t\t<简介><![CDATA[这是简介:".$i."]]></简介>"."\n";
$xmlStr.= "\t\t<连接地址><![CDATA[personal_shop.php?id=".$i."]]></连接地址>"."\n";
$xmlStr.= "\t</商铺>"."\n";
}
$xmlStr.= "</商铺列表>"."\n";
header("Content-type: text/xml\n\n");
echo $xmlStr;
}
}

$shoplist = new shoplist_res($vars,$HTTP_COOKIE_VARS);
//$shoplist->_shoplist_res();
unset($sthoplist);
?>

2、用php读取xml数据

<?php
$parser = xml_parser_create(); //创建一个parser编辑器
xml_set_element_handler($parser, "startElement", "endElement");//设立标签触发时的相应函数 这里分别为startElement和endElenment
xml_set_character_data_handler($parser, "characterData");//设立数据读取时的相应函数
$xml_file="1.xml";//指定所要读取的xml文件,可以是url
$filehandler = fopen($xml_file, "r");//打开文件

while ($data = fread($filehandler, 4096))
{
xml_parse($parser, $data, feof($filehandler));
}//每次取出4096个字节进行处理

fclose($filehandler);
xml_parser_free($parser);//关闭和释放parser解析器

$name=false;
$position=false;
function startElement($parser_instance, $element_name, $attrs) //起始标签事件的函数
{
global $name,$position;
if($element_name=="NAME")
{
$name=true;
$position=false;
echo "名字:";
}
if($element_name=="POSITION")
{$name=false;
$position=true;
echo "职位:";
}
}

function characterData($parser_instance, $xml_data) //读取数据时的函数
{
global $name,$position;
if($position)
echo $xml_data."<br>";
if($name)
echo $xml_data."<br>";
}

function endElement($parser_instance, $element_name) //结束标签事件的函数
{
global $name,$position;
$name=false;
$position=false;
}

?>
xml文件代码如下:

<?xml version="1.0"?>
<employees>
<employee>
<name>张三</name>
<position age="45">经理</position>
</employee>
<employees>
<employee>
<name>李四</name>
<position age="45">助理</position>
</employee>
</employees>

php解析xml问题?

我爱编程网(https://www.52biancheng.com)小编还为大家带来php解析xml问题?的相关内容。

<?php
$xml='...xml数据此略...';
$eid='31037010'; //这是要查找的equip_id
$dom=new DOMDocument('1.0','utf-8');
@$dom->loadXML($xml);
$eids=$dom->getElementsByTagName('equip_id');
foreach($eids as $v){
if($v->nodeValue==$eid){
do{
if($v->nodeType==1){
$name=$v->tagName; //同级标签名
$text=$v->nodeValue; //同级标签值
print_r($name.'='.$text.'<br />');
}
}while($v=$v->nextSibling);
}
}
?> 我爱编程网

以上就是我爱编程网为大家带来的php中,loadxml()用法 php解析xml问题?,希望能帮助到大家!更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“php中,loadxml()用法 php解析xml问题?”相关推荐
php如何解析多级xml报文?
php如何解析多级xml报文?

PHP读取xml文件以前做过联通或电信的service订购接口,收到的内容就是XML的,需要用到PHP的XML处理功能,你的代码可以这样:&lt;xmp&gt;&lt;?php$string=file_get_contents("");if($string!=""):$xml=newDomDocument('1.0');$xml-&gt;loadXML($str

2025-01-27 08:36:40
PHP 输出XML出现乱码问题怎么解决呢?
PHP 输出XML出现乱码问题怎么解决呢?

PHP输出XML出现乱码问题怎么解决呢?出错的原因在于PHP程序输出编码和XML文件的编码不一致所导致工具原料:电脑+php+xml方法一:使用utf-8编码,修改方法如下:一.把两个gb2312改为utf-8二.在xml文件上点右键,选择用记事本打开,另存为,编码由ansi改为,覆盖保存。方法二:直接设置PHP文件格式为ansi,输出正常php文件怎么打开是

2024-12-25 16:36:29
php时间函数问题 PHP中strtotime函数使用方法详解
php时间函数问题 PHP中strtotime函数使用方法详解

PHPDatedate函数的格式字符串列表PHP的Datedate函数提供了丰富多样的格式字符串,用于根据不同需求格式化日期和时间。以下是一些常用的格式字符串列表:d:月份中的第几天,带前导零,格式为01-31。D:星期中的第几天,文本表示,如Mon到Sun。j:月份中的第几天,无前导零,1-31。L:星期几,完整文本格式,如Su

2024-12-11 07:08:22
php中exec乱码问题怎么解决?
php中exec乱码问题怎么解决?

php中exec乱码问题怎么解决?在PHP中使用exec函数可能遭遇乱码问题,原因是执行命令返回的数据包含非ASCII编码字符,而PHP默认使用ASCII编码处理数据,因此无法正确解读这些字符。解决方法包括:使用iconv函数转换命令输出数据的编码,使其与PHP使用的编码一致,例如,若命令输出为UTF-8编码,PHP使用GBK编码,可这样操作。若PHP环境与命令执行环境编码相同,则考虑

2025-02-06 02:20:53
PHP中的函数-- foreach()的用法详解(一个很简单的PHP面向对象 问题)
PHP中的函数-- foreach()的用法详解(一个很简单的PHP面向对象 问题)

PHP中的函数--foreach()的用法详解PHP4引入了foreach结构,和Perl以及其他语言很像。这只是一种遍历数组简便方法。foreach仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。复制代码代码如下:foreach(array_expressiona

2024-11-21 18:38:06
PHP中的函数-- foreach()的用法详解(关于PHP跳出循环continue函数的问题)
PHP中的函数-- foreach()的用法详解(关于PHP跳出循环continue函数的问题)

PHP中的函数--foreach()的用法详解PHP4引入了foreach结构,和Perl以及其他语言很像。这只是一种遍历数组简便方法。foreach仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。复制代码代码如下:foreach(array_expressiona

2024-11-30 00:35:00
Java中CPU占用过高问题如何解决
Java中CPU占用过高问题如何解决

Java中CPU占用过高问题如何解决方法11.jps获取Java进程的PID。2.jstackpid&gt;&gt;java.txt导出CPU占用高进程的线程栈。3.top-H-pPID查看对应进程的哪个线程占用CPU过高。4.echo“obase=16;PID”|bc将线程的PID转换为16进制,大写转换为小写。5.在第二步导出的Java.txt中查找转换成为1

2024-06-01 04:31:35
解析PHP中的unset究竟会不会释放内存 php中function函数的用法
解析PHP中的unset究竟会不会释放内存 php中function函数的用法

解析PHP中的unset究竟会不会释放内存PHP中的unset究竟会不会释放内存?以下我们实例说明一下首先让我们看一个例子复制代码代码如下:   var_dump(memory_get_usage());   $a="laruence";   var_dump(memory_get_usage());   unset($a);   var_dump(memory_get_u

2024-09-29 20:32:20