我正在尝试使用file_get_content在php中获取XML文件的内容。但是它返回了我奇怪的数字,例如
1.2610.09 1.351 1.351 1.261 1.261 1.261 0.09 1.351 1.261 0.00 1.0010.07 1.071 1.071 1.001 1.001 1.001
XML示例:
<?xml version="1.0" encoding="iso_8859-1"?>
<day xmlns="x-schema:..\schema_ej.xml" FILE="80919004.010">
<trs F1068="SALE" F254="2018-09-19" F253="2018-09-19T07:09:11" F1056="004" F1057="010" F1035="07:08:50" F1036="07:09:11"
F1032="1672" F1764="00001663" F1185="24" F1126="202" F1127="MAX">
<r F1101="1"><itm F01="0000000007001" F02="COLADA EA" F04="60" F03="60" F81="1" F1007="1.26" F1006="1"/><F65>1.26</F65><F64>1</F64><F1263>0.09</F1263><key in="202" fn="10777"/><key in="202" fn="10762"/><key in="202" fn="10710"/><key in="202" fn="10746"/><key in="202" fn="10735"/><key in="202" fn="10775"/><key in="202" fn="10725"/><key in="202" fn="10200"/><key fn="710"/></r>
<r F1101="2"><fct F1063="101" F02="Cash" F113=""/><F65>1.35</F65><F64>1</F64><key fn="720"/><key in="1.35" fn="101"/></r>
<t><tlz F1034="2" F02="TOTAL SALES"/><F65>1.35</F65><F64>1</F64></t>
<t><tlz F1034="3" F02="Net Sales"/><F65>1.26</F65><F64>1</F64></t>
<t><tlz F1034="7" F02="Discountable Sales"/><F65>1.26</F65><F64>1</F64></t>
<t><tlz F1034="21" F02="Taxable 1"/><F65>1.26</F65><F64>1</F64></t>
<t><tlz F1034="22" F02="Tax 1"/><F65>0.09</F65></t>
<t><tlz F1034="1201" F02="Cash"/><F65>1.35</F65><F64>1</F64></t>
<t><tlz F1034="3415" F02="Admissible spending"/><F65>1.26</F65><F64>1</F64></t>
<t><tlz F1034="29999" F02="BALANCE"/><F65>0.00</F65></t>
</trs>
</day>
我的最终目标是将xml转换为json。
预先感谢
答案 0 :(得分:0)
用于获取内容的File_get_contents,然后:用于解析XML的SimpleXML。
$xmlFILE = file_get_contents('PATHTOFILE.xml');
$simpleXml = new SimpleXMLElement($xml);
echo $simpleXml->__toString();
function XML2JSON($xml) {
function normalizeSimpleXML($obj, &$result) {
$data = $obj;
if (is_object($data)) {
$data = get_object_vars($data);
}
if (is_array($data)) {
foreach ($data as $key => $value) {
$res = null;
normalizeSimpleXML($value, $res);
if (($key == '@attributes') && ($key)) {
$result = $res;
} else {
$result[$key] = $res;
}
}
} else {
$result = $data;
}
}
normalizeSimpleXML(simplexml_load_string($xml), $result);
return json_encode($result);
}