function endElement($parser, $name) { global $count; global $block; if($name == $block) { $count =$count+1; } }
function characterData($parser, $data) { global $key; global $value; global $count; global $arr; if(strlen($data>0)) { $value=$data; $arr [$count]["$key"]=$value; } //print $data."==>".$arr[1]["DATA_ITEM1"] ; }
ผมติดปัญหาเหมือนกัน ครับ ตอนนี้ยังหาวิธีตัดคำที่ต้องการ เก็บ ลง database ไม่ได้เลยครับ
แล้วก็ลองศึกษา sax ดูนะครับ ผมก็กำลังทำเรื่องนี้อยู่
<?php
$file = "x.xml";
$arr=array();
$count=0;
$block="DATA";
$key="";
$value="";
function startElement($parser, $name, $attrs) {
global $key;
$key=$name;
}
function endElement($parser, $name) {
global $count;
global $block;
if($name == $block)
{
$count =$count+1;
}
}
function characterData($parser, $data) {
global $key;
global $value;
global $count;
global $arr;
if(strlen($data>0))
{
$value=$data;
$arr [$count]["$key"]=$value;
}
//print $data."==>".$arr[1]["DATA_ITEM1"] ;
}
$simpleparser = xml_parser_create();
xml_set_element_handler($simpleparser, "startElement", "endElement");
xml_set_character_data_handler($simpleparser, "characterData");
if (!($fp = fopen($file, "r"))) {
die("could not open XML input");
}
while($data = fread($fp, filesize($file))) {
if (!xml_parse($simpleparser, $data, feof($fp))) {
die(xml_error_string(xml_get_error_code($simpleparser)));
}
}
xml_parser_free($simpleparser);
$test = array();
//print $arr[2]["DATA_ITEM0"];
for($i=0;$i<2;$i++)
{for($j=0;$j<3;$j++)
{
print $arr[$j]["DATA_ITEM".$i];
}
}
//print $test[0];
?>
ขอบคุณครับ
- <FnoDailyTrdSumRpt:FnoDailyTrdSumRpt xmlns:FnoDailyTrdSumRpt="http://www.excel.com.hk/settlement/FnoDailyTrdSumRpt/">
- <FnoDailyTrdSumRpt:Header>
<FnoDailyTrdSumRpt:ID>1234</FnoDailyTrdSumRpt:ID>
<FnoDailyTrdSumRpt:Title> Report As At 1-/-2/2--9</FnoDailyTrdSumRpt:Title>
<FnoDailyTrdSumRpt:Company>Test Company</FnoDailyTrdSumRpt:Company>
<FnoDailyTrdSumRpt:PrintTime>2--9-21- 2-:-3</FnoDailyTrdSumRpt:PrintTime>
<FnoDailyTrdSumRpt:BusDate>11/-2/2--9</FnoDailyTrdSumRpt:BusDate>
</FnoDailyTrdSumRpt:Header>
- <FnoDailyTrdSumRpt:ClientTradeData>
- <FnoDailyTrdSumRpt:ClientTradeRecord>
<FnoDailyTrdSumRpt:TDNo>0</FnoDailyTrdSumRpt:TDNo>
<FnoDailyTrdSumRpt:ExtRefNo>123456852</FnoDailyTrdSumRpt:ExtRefNo>
<FnoDailyTrdSumRpt:BuyQty>1</FnoDailyTrdSumRpt:BuyQty>
<FnoDailyTrdSumRpt:SellQty>0</FnoDailyTrdSumRpt:SellQty>
<FnoDailyTrdSumRpt:Price>76</FnoDailyTrdSumRpt:Price>
<FnoDailyTrdSumRpt:ClosedQty>0</FnoDailyTrdSumRpt:ClosedQty>
<FnoDailyTrdSumRpt:ContractCode>ADVANCH-9</FnoDailyTrdSumRpt:ContractCode>
<FnoDailyTrdSumRpt:ContractName>ADVANC-3/2--9</FnoDailyTrdSumRpt:ContractName>
<FnoDailyTrdSumRpt:CaccCode>999----928---3</FnoDailyTrdSumRpt:CaccCode>
<FnoDailyTrdSumRpt:CaccName>ÊÁÈÑ¡´Ôì</FnoDailyTrdSumRpt:CaccName>
<FnoDailyTrdSumRpt:ProductNatureCode>F</FnoDailyTrdSumRpt:ProductNatureCode>
<FnoDailyTrdSumRpt:ProductNatureDesc>ADVANC</FnoDailyTrdSumRpt:ProductNatureDesc>
<FnoDailyTrdSumRpt:FnoTypeCode>ADVANCF</FnoDailyTrdSumRpt:FnoTypeCode>
<FnoDailyTrdSumRpt:ExBoard>TXS</FnoDailyTrdSumRpt:ExBoard>
<FnoDailyTrdSumRpt:TradeCategory>F</FnoDailyTrdSumRpt:TradeCategory>
</FnoDailyTrdSumRpt:ClientTradeRecord>
- <FnoDailyTrdSumRpt:ClientTradeRecord>
<FnoDailyTrdSumRpt:TDNo>0F9</FnoDailyTrdSumRpt:TDNo>
<FnoDailyTrdSumRpt:ExtRefNo>01456059</FnoDailyTrdSumRpt:ExtRefNo>
<FnoDailyTrdSumRpt:BuyQty>0</FnoDailyTrdSumRpt:BuyQty>
<FnoDailyTrdSumRpt:SellQty>1</FnoDailyTrdSumRpt:SellQty>
<FnoDailyTrdSumRpt:Price>0</FnoDailyTrdSumRpt:Price>
<FnoDailyTrdSumRpt:ClosedQty>1</FnoDailyTrdSumRpt:ClosedQty>
<FnoDailyTrdSumRpt:ContractCode>GFG-9</FnoDailyTrdSumRpt:ContractCode>
<FnoDailyTrdSumRpt:ContractName>GF</FnoDailyTrdSumRpt:ContractName>
<FnoDailyTrdSumRpt:CaccCode>999</FnoDailyTrdSumRpt:CaccCode>
<FnoDailyTrdSumRpt:CaccName>à¡ÉÁ</FnoDailyTrdSumRpt:CaccName>
<FnoDailyTrdSumRpt:ProductNatureCode>F</FnoDailyTrdSumRpt:ProductNatureCode>
<FnoDailyTrdSumRpt:ProductNatureDesc>Futures</FnoDailyTrdSumRpt:ProductNatureDesc>
<FnoDailyTrdSumRpt:FnoTypeCode>GF</FnoDailyTrdSumRpt:FnoTypeCode>
<FnoDailyTrdSumRpt:ExBoard>TXM</FnoDailyTrdSumRpt:ExBoard>
<FnoDailyTrdSumRpt:TradeCategory>F</FnoDailyTrdSumRpt:TradeCategory>
</FnoDailyTrdSumRpt:ClientTradeRecord>
ผมต้องการนำข้อมูล(เฉพาะข้อมูล)เฉพาะส่วนสีแดงมาเก็บไว้ใน data base ตามที่บอกมาผมทำไม่ได้อ่ะครับ ช่วยหน่อยนะครับ