我现在要处理这样一个 xml
超长待机续航时间: 充电预估: 续航时间充电预估未知电池详情android 系统wlan 空闲状态蓝牙空闲状态cpu 空闲状态语音通话数据待机未知屏幕wlan
我的 php 代码为
load(zh-cnstrings.xml);// print $xmldoc->savexml();$x = $xmldoc->documentelement;foreach ($x->childnodes as $item) { echo ; print var_dump($item); echo
; }?>现在我可以去到 string 的内容 “超长待机”如 但 name 的内容 “mode_label_longest_standby” 我不知道怎么取出来
回复内容: 我现在要处理这样一个 xml
超长待机续航时间: 充电预估: 续航时间充电预估未知电池详情android 系统wlan 空闲状态蓝牙空闲状态cpu 空闲状态语音通话数据待机未知屏幕wlan
我的 php 代码为
load(zh-cnstrings.xml);// print $xmldoc->savexml();$x = $xmldoc->documentelement;foreach ($x->childnodes as $item) { echo ; print var_dump($item); echo
; }?>现在我可以去到 string 的内容 “超长待机”如 但 name 的内容 “mode_label_longest_standby” 我不知道怎么取出来
这么整齐的xml,lz要不要用正则试试?
array(3) { [0]=> string(63) 超长待机 [1]=> string(26) mode_label_longest_standby [2]=> string(12) 超长待机 } [1]=> array(3) { [0]=> string(80) 续航时间: [1]=> string(39) battery_info_remaining_discharging_time [2]=> string(16) 续航时间: } [2]=> array(3) { [0]=> string(77) 充电预估: [1]=> string(36) battery_info_remaining_charging_time [2]=> string(16) 充电预估: } [3]=> array(3) { [0]=> string(99) 续航时间 [1]=> string(60) ongoing_notification_battery_info_remaining_discharging_time [2]=> string(14) 续航时间 } [4]=> array(3) { [0]=> string(96) 充电预估 [1]=> string(57) ongoing_notification_battery_info_remaining_charging_time [2]=> string(14) 充电预估 } [5]=> array(3) { [0]=> string(57) 未知 [1]=> string(26) battery_info_value_unknown [2]=> string(6) 未知 } [6]=> array(3) { [0]=> string(63) 电池详情 [1]=> string(26) battery_info_details_title [2]=> string(12) 电池详情 } [7]=> array(3) { [0]=> string(63) android 系统 [1]=> string(24) uid_label_android_system [2]=> string(14) android 系统 } [8]=> array(3) { [0]=> string(61) wlan 空闲状态 [1]=> string(19) uid_label_wlan_idle [2]=> string(17) wlan 空闲状态 } [9]=> array(3) { [0]=> string(67) 蓝牙空闲状态 [1]=> string(24) uid_label_bluetooth_idle [2]=> string(18) 蓝牙空闲状态 } [10]=> array(3) { [0]=> string(59) cpu 空闲状态 [1]=> string(18) uid_label_cpu_idle [2]=> string(16) cpu 空闲状态 } [11]=> array(3) { [0]=> string(59) 语音通话 [1]=> string(22) uid_label_radio_active [2]=> string(12) 语音通话 } [12]=> array(3) { [0]=> string(51) 数据 [1]=> string(20) uid_label_radio_data [2]=> string(6) 数据 } [13]=> array(3) { [0]=> string(51) 待机 [1]=> string(20) uid_label_radio_idle [2]=> string(6) 待机 } [14]=> array(3) { [0]=> string(47) 未知 [1]=> string(16) hw_label_unknown [2]=> string(6) 未知 } [15]=> array(3) { [0]=> string(46) 屏幕 [1]=> string(15) hw_label_screen [2]=> string(6) 屏幕 } [16]=> array(3) { [0]=> string(42) wlan [1]=> string(13) hw_label_wlan [2]=> string(4) wlan }}
如果xml里面的string标签的name值是唯一的,你可以这样子试试:
load(test.xml);
$x = $xmldoc->getelementsbytagname(string);
$arr = array();
foreach ($x as $item){
$arr[$item->attributes->item(0)->nodevalue] = $item->nodevalue;
}
print_r($arr);
得到的结果是
array
(
[mode_label_longest_standby] => 超长待机[battery_info_remaining_discharging_time] => 续航时间: [battery_info_remaining_charging_time] => 充电预估: [ongoing_notification_battery_info_remaining_discharging_time] => 续航时间[ongoing_notification_battery_info_remaining_charging_time] => 充电预估[battery_info_value_unknown] => 未知[battery_info_details_title] => 电池详情[uid_label_android_system] => android 系统[uid_label_wlan_idle] => wlan 空闲状态[uid_label_bluetooth_idle] => 蓝牙空闲状态[uid_label_cpu_idle] => cpu 空闲状态[uid_label_radio_active] => 语音通话[uid_label_radio_data] => 数据[uid_label_radio_idle] => 待机[hw_label_unknown] => 未知[hw_label_screen] => 屏幕[hw_label_wlan] => wlan
)