我已尝试将数组转换为xml。我是新手。我使用那个array2xml类。 (在http://www.lalit.org/lab/convert-xml-to-array-in-php-xml2array/上)
我的阵列:
$array = array();
$array['main']['head']['id'] = 1;
$array['main']['head']['type'] = 0;
$array['main']['head']['customerid'] = 10001;
$array['main']['address']['city'] = "BB";
$array['main']['address']['country'] = "AA";
$array['main']['orderlines']['line'][0]['prdcode'] = "1A2BC";
$array['main']['orderlines']['line'][0]['qty'] = 5;
$array['main']['orderlines']['line'][1]['prdcode'] = "2C2BC";
$array['main']['orderlines']['line'][1]['qty'] = 3;
$array['main'][0]['attr'][0]['line']['size'] = "100x200";
$array['main'][0]['attr'][0]['line']['color'] = "orange";
$array['main'][0]['attr'][1]['line']['size'] = "50x50";
$array['main'][0]['attr'][1]['line']['color'] = "orange";
$array['main'][1]['attr'][0]['line']['size'] = "75x200";
$array['main'][1]['attr'][0]['line']['color'] = "blue";
$array['main'][1]['attr'][1]['line']['size'] = "10x50";
$array['main'][1]['attr'][1]['line']['color'] = "green";
你可以在这里看到:http://codepad.org/GrUa5rpD
我想这样结果:
<?xml version="1.0" encoding="utf-8"?>
<main>
<head>
<id>1</id>
<type>0</type>
<customerid>0</customerid>
</head>
<address>
<city>BB</city>
<country>AA</country>
</address>
<orderlines>
<line>
<prdcode>1A2BC</prdcode>
<qty>5</qty>
</line>
<line>
<prdcode>2C2BC</prdcode>
<qty>3</qty>
</line>
</orderlines>
<attr>
<line>
<size>100x200</size>
<color>orange</color>
</line>
<line>
<size>50x50</size>
<color>orange</color>
</line>
</attr>
<attr>
<line>
<size>75x200</size>
<color>blue</color>
</line>
<line>
<size>10x50</size>
<color>green</color>
</line>
</attr>
</main>
我的问题是当我转换PHP数组2 XML时,我收到<attr>
标记的错误。密钥不是数字。
PHP错误:
的 Fatal error: Uncaught exception 'Exception' with message '[Array2XML] Illegal character in tag name. tag: 0 in node: main
如何解决此问题? 谢谢你的帮助!
答案 0 :(得分:2)
这是创建xml所需的数组结构:
$main['head']['id'] = 1;
$main['head']['type'] = 0;
$main['head']['customerid'] = 10001;
$main['address']['city'] = 0;
$main['address']['country'] = 10001;
$main['orderlines']['line'][0]['prdcode'] = "1A2BC";
$main['orderlines']['line'][0]['qty'] = 5;
$main['orderlines']['line'][1]['prdcode'] = "2C2BC";
$main['orderlines']['line'][1]['qty'] = 3;
$main['attr'][0]['line'][0]['size'] = "100x200";
$main['attr'][0]['line'][0]['color'] = "orange";
$main['attr'][0]['line'][1]['size'] = "50x50";
$main['attr'][0]['line'][1]['color'] = "orange";
$main['attr'][1]['line'][0]['size'] = "75x200";
$main['attr'][1]['line'][0]['color'] = "blue";
$main['attr'][1]['line'][1]['size'] = "10x50";
$main['attr'][1]['line'][1]['color'] = "green";
$xml = Array2XML::createXML('main', $main);
或以不同的方式形成:
$main = array(
'head'=> array(
'id' => 1,
'type' => 0,
'customerid' => 10001
),
'address'=> array(
'city' => "BB",
'country' => "AA"
),
'orderlines'=> array(
'line' => array(
array (
'prdcode' => "1A2BC",
'qty' => 5
), array (
'prdcode' => "2C2BC",
'qty' => 3
)
)
),
'attr'=> array(
array('line' => array(
array(
'size' => "100x200",
'color' => "orange"
),
array(
'size' => "50x50",
'color' => "orange"
)
)
),
array('line' => array(
array(
'size' => "75x200",
'color' => "blue"
),
array(
'size' => "10x50",
'color' => "green"
)
)
)
)
);
$xml = Array2XML::createXML('main', $main);