難道csdn上沒有人會用嗎?真難相信!
解决方案 »
- php怎么入门好一些呢
- 求助一个正责
- upload_tmp_dir 上传临时目录必须建到 网站主程序目录 外吗?
- Cookie 的设置问题,不知道是不是服务器配置问题
- 请高人帮助:php5.3.1配置xdebug2.0.5后,xdebug没有反应
- 關於php開發的軟件
- 在apache的httpd.conf文件制定一个一级站点,和二级域名跳转,为什么所有的域名都指向一级站点去了?
- 新浪游戏 玩家社区 招聘网站开发工程师
- 赐教!赐教!请各位大哥进来看,帮帮小弟!
- PHP能否检查是否有任何输出?
- 怎么样设置能让apache 运行cgi程序?
- php连接oracle,tanames.ora文件要怎么配置呢,多谢多谢,急
用这个类可以很轻松的得到你要的东西phpxml的原理是Xpath。
$data = implode("",file($filename));
$parser = xml_parser_create();
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
xml_parse_into_struct($parser,$data,$values,$tags);
xml_parser_free($parser);--------------------------------------------------------------
class XMLBalanceRecord {
var $PartNo;
var $Supplier;
var $Plant;
var $INVBalance;
var $QuarBalance;
var $CTB1;
var $CTB2;
function XMLBalanceRecord($aa) {
foreach ($aa as $k=>$v)
$this->$k = $aa[$k];
}
}function readXML($filename,$XMLType) {
$data = implode("",file($filename));
$parser = xml_parser_create();
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
xml_parse_into_struct($parser,$data,$values,$tags);
xml_parser_free($parser); // loop through the structures
foreach ($tags as $key=>$val) {
if ($key == "QueryRecords") {
$QueryRecords = $val;
// each contiguous pair of array entries are the
// lower and upper range for each QueryRecords definition
for ($i=0; $i < count($QueryRecords); $i+=2) {
$offset = $QueryRecords[$i] + 1;
$len = $QueryRecords[$i + 1] - $offset;
switch ($XMLType) {
case 'BALANCE' :
$tdb[] = parseBalance(array_slice($values, $offset, $len));
break;
} }
} else {
continue;
}
}
return $tdb;
}function parseBalance($mvalues) {
for ($i=0; $i < count($mvalues); $i++)
$qr[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
return new XMLBalanceRecord($qr);
}XML格式如下:
<?xml version="1.0"?>
<EWareHouse><QueryRecords>
<PARTNO>1W1H19D8 </PARTNO>
<SUPPLIER>KEY </SUPPLIER>
<PLANT>MARK </PLANT>
<INVBALANCE>104</INVBALANCE>
<QUARBALANCE>54</QUARBALANCE>
<CTB1>0</CTB1>
<CTB2>0</CTB2>
</QueryRecords></EWareHouse>
http://expert.csdn.net/Expert/topic/1597/1597294.xml?temp=.5749933