CodeIgniter-处理简单XML&;PHP
在控制器中,我有CodeIgniter-处理简单XML&;PHP,php,codeigniter,simplexml,Php,Codeigniter,Simplexml,在控制器中,我有\u send方法。此方法返回如下内容: $xmlstr = <<<XML <?xml version='1.0' standalone='yes' ?> <status id="555555555" date="Wed, 28 Mar 2013 12:35:00 +0300"> <id>3806712345671174984921381</id> <id>38
\u send
方法。此方法返回如下内容:
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes' ?>
<status id="555555555" date="Wed, 28 Mar 2013 12:35:00 +0300">
<id>3806712345671174984921381</id>
<id>3806712345671174984921382</id>
<id>3806712345671174984921383</id>
<id>3806712345671174984921384</id>
<state error="Unknown1">Rejected1</state>
<state error="Unknown2">Rejected2</state>
<state error="">Accepted</state>
<state error="">Accepted</state>
</status>
XML;
我无法创建适合传递到模型以插入数据库的数组或对象。
低于我现在拥有的
$xml = new SimpleXMLElement($xmlstr);
foreach ($xml as $child) {
if ($child->getName() == 'id') {
$id[] = $child->id;
}
if ($child->getName() == 'state') {
$state[] = $child;
//$state[] = $child['error'];
}
}
return array_merge($id,$state);
我正在尝试实现类似以下阵列的功能:
array(0 => array(
'id' => '3806712345671174984921381',
'state' => 'Rejected1',
'state_error' => 'Unknown1'),
1 => array( ....
error
属性有问题,有错误array\u merge
有什么想法吗?你可以这样做:
//加载XML
$xmlstr='1
3806712345671174984921381
3806712345671174984921382
3806712345671174984921383
3806712345671174984921384
拒绝1
拒绝2
认可的
认可的
';
$xml=新的simplexmlement($xmlstr);
//初始化
$parsed_data=array();
//解析Id
foreach($xml->id作为$id)
{
$parsed_data[]=数组(
'id'=>(字符串)$id,
'状态'=>'',
“状态错误”=>“
);
}
//解析状态&状态错误
$i=0;
foreach($xml->状态为$state)
{
$parsed_data[$i]['state']=(字符串)$state;
$parsed_data[$i]['state_error']=(字符串)$state['error'];
$i++;
}
//输出
var_dump($parsed_data);
这是我得到的输出:
这是您可以做到的:
//加载XML
$xmlstr='1
3806712345671174984921381
3806712345671174984921382
3806712345671174984921383
3806712345671174984921384
拒绝1
拒绝2
认可的
认可的
';
$xml=新的simplexmlement($xmlstr);
//初始化
$parsed_data=array();
//解析Id
foreach($xml->id作为$id)
{
$parsed_data[]=数组(
'id'=>(字符串)$id,
'状态'=>'',
“状态错误”=>“
);
}
//解析状态&状态错误
$i=0;
foreach($xml->状态为$state)
{
$parsed_data[$i]['state']=(字符串)$state;
$parsed_data[$i]['state_error']=(字符串)$state['error'];
$i++;
}
//输出
var_dump($parsed_data);
这是我得到的输出:
这是您可以做到的:
//加载XML
$xmlstr='1
3806712345671174984921381
3806712345671174984921382
3806712345671174984921383
3806712345671174984921384
拒绝1
拒绝2
认可的
认可的
';
$xml=新的simplexmlement($xmlstr);
//初始化
$parsed_data=array();
//解析Id
foreach($xml->id作为$id)
{
$parsed_data[]=数组(
'id'=>(字符串)$id,
'状态'=>'',
“状态错误”=>“
);
}
//解析状态&状态错误
$i=0;
foreach($xml->状态为$state)
{
$parsed_data[$i]['state']=(字符串)$state;
$parsed_data[$i]['state_error']=(字符串)$state['error'];
$i++;
}
//输出
var_dump($parsed_data);
这是我得到的输出:
这是您可以做到的:
//加载XML
$xmlstr='1
3806712345671174984921381
3806712345671174984921382
3806712345671174984921383
3806712345671174984921384
拒绝1
拒绝2
认可的
认可的
';
$xml=新的simplexmlement($xmlstr);
//初始化
$parsed_data=array();
//解析Id
foreach($xml->id作为$id)
{
$parsed_data[]=数组(
'id'=>(字符串)$id,
'状态'=>'',
“状态错误”=>“
);
}
//解析状态&状态错误
$i=0;
foreach($xml->状态为$state)
{
$parsed_data[$i]['state']=(字符串)$state;
$parsed_data[$i]['state_error']=(字符串)$state['error'];
$i++;
}
//输出
var_dump($parsed_data);
这是我得到的输出:
您可以使用一个简单的
while
语句来编写
$cnt=$xml->id->count();$i=0;
while($i<$cnt)
{
$new_arr[$i]['id']=(string)$xml->id[$i];
$new_arr[$i]['state'] = (string)$xml->state[$i];
$new_arr[$i]['state_error'] = (string)$xml->state[$i]['error'];
$i++;
}
print_r($new_arr);
$cnt=$xml->id->count()$i=0;
而($iid[$i];
$new_arr[$i]['state']=(字符串)$xml->state[$i];
$new_arr[$i]['state_error']=(字符串)$xml->state[$i]['error'];
$i++;
}
打印(新的);
您可以使用一个简单的
while
语句来编写
$cnt=$xml->id->count();$i=0;
while($i<$cnt)
{
$new_arr[$i]['id']=(string)$xml->id[$i];
$new_arr[$i]['state'] = (string)$xml->state[$i];
$new_arr[$i]['state_error'] = (string)$xml->state[$i]['error'];
$i++;
}
print_r($new_arr);
$cnt=$xml->id->count();$i=0;
而($iid[$i];
$new_arr[$i]['state']=(字符串)$xml->state[$i];
$new_arr[$i]['state_error']=(字符串)$xml->state[$i]['error'];
$i++;
}
打印(新的);
您可以使用一个简单的
while
语句来编写
$cnt=$xml->id->count();$i=0;
while($i<$cnt)
{
$new_arr[$i]['id']=(string)$xml->id[$i];
$new_arr[$i]['state'] = (string)$xml->state[$i];
$new_arr[$i]['state_error'] = (string)$xml->state[$i]['error'];
$i++;
}
print_r($new_arr);
$cnt=$xml->id->count();$i=0;
而($iid[$i];
$new_arr[$i]['state']=(字符串)$xml->state[$i];
$new_arr[$i]['state_error']=(字符串)$xml->state[$i]['error'];
$i++;
}
打印(新的);
您可以使用一个简单的
while
语句来编写
$cnt=$xml->id->count();$i=0;
while($i<$cnt)
{
$new_arr[$i]['id']=(string)$xml->id[$i];
$new_arr[$i]['state'] = (string)$xml->state[$i];
$new_arr[$i]['state_error'] = (string)$xml->state[$i]['error'];
$i++;
}
print_r($new_arr);
$cnt=$xml->id->count();$i=0;
而($iid[$i];
$new_arr[$i]['state']=(字符串)$xml->state[$i];
$new_arr[$i]['state_error']=(字符串)$xml->state[$i]['error'];
$i++;
}
打印(新的);
一个小问题。为什么我们必须通过指定(字符串)来使用对象到字符串的转换?我想是php做的…一个小问题。为什么我们必须通过指定(字符串)来使用对象到字符串的转换?我想是php做的…一个小问题。为什么我们必须通过指定(字符串)来使用对象到字符串的转换?我想是php做的…一个小问题。为什么我们必须通过指定(字符串)来使用对象到字符串的转换?我在想php可以做到…你需要手动进行强制转换,php不会神奇地为你做。你需要手动进行强制转换,php不会神奇地为你做。你需要手动进行强制转换,php不会神奇地为你做。你需要手动进行强制转换,php不会神奇地为你做。