Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用<;0>;标签_Php_Xml - Fatal编程技术网

Php 如何使用<;0>;标签

Php 如何使用<;0>;标签,php,xml,Php,Xml,我正在从Json文件生成一个XML文件 $array=file\u get\u contents('Invoice.json'); $json=json_decode($array,true); $token=$json['invoice']; 函数数组\u到\u xml($data,&$xml\u data){ foreach($key=>$value形式的数据){ if(是_数组($value)){ 如果(是数字($key)){ $key='item'.$key;//处理..问题 $key

我正在从Json文件生成一个XML文件

$array=file\u get\u contents('Invoice.json');
$json=json_decode($array,true);
$token=$json['invoice'];
函数数组\u到\u xml($data,&$xml\u data){
foreach($key=>$value形式的数据){
if(是_数组($value)){
如果(是数字($key)){
$key='item'.$key;//处理..问题
$key2=‘联系人’。$key;
}
$subnode=$xml\u data->addChild($key);
数组到xml($value,$subnode);
}否则{
$xml_data->addChild($key),htmlspecialchars($value));
}
}
}
$xml_data=新的SimpleXMLElement(“”);
//将数组转换为xml的函数调用
数组到xml($token,$xml\u数据);
//保存生成的xml文件;

$result=$xml_data->asXML('Invoice.xml')当您拥有的不是键为0的数组时,就会出现问题。所以我在这里所做的是将数字键的检查移到
if
之外,这样它就可以应用于将键添加到结构中的任何一次

function array_to_xml( $data, &$xml_data ) {
    foreach( $data as $key => $value ) {
        if( is_numeric($key) ){
            $key = 'item'.$key; //dealing with <0/>..<n/> issues
        }
        if( is_array($value) ) {
            $subnode = $xml_data->addChild($key);
            array_to_xml($value, $subnode);
        } else {
            $xml_data->addChild("$key",htmlspecialchars("$value"));
        }
    }
}
函数数组到xml($data,&$xml\u数据){
foreach($key=>$value形式的数据){
如果(是数字($key)){
$key='item'.$key;//处理..问题
}
if(是_数组($value)){
$subnode=$xml\u data->addChild($key);
数组到xml($value,$subnode);
}否则{
$xml_data->addChild($key),htmlspecialchars($value));
}
}
}

你能给出一个产生问题的JSON数据示例吗?我在帖子中添加了JSON:)没有完全遵循逻辑,但我仍然没有看到任何代码来处理非有效XML名称的JSON键,例如包含空格的键。谢谢你Nigel Ren,工作很好!