我有这样一个XML:<?xml version="1.0"?>
<employees>
<employee>
<name>张三</name>
<position>经理</position>
</employee>
<employee>
<name>李四</name>
<position>助理</position>
</employee>
<employee>
<name>李四</name>
<position>助理</position>
</employee>
<employee>
<name>王五</name>
<position>讲师</position>
</employee>
</employees>
需要一个PHP对这个XML进行处理后,生成一个新的XML。要求是: 对<name></name>里的字符串,
都要进行调用 fanyi($str)这个函数,并用返回值 替换 原值。但另外两点:
如果这个函数的返回值为 1 ,那么就需要将它的<position>里的值变成 1.
如果这个函数的返回值为 0 ,那么就需要将它去掉。
例如,如果fanyi('张三')返回:zhangsan; fanyi('李四')返回:1; fanyi('王五')返回:0。那么经过这个PHP函数后,生成的新XML为:
<?xml version="1.0"?>
<employees>
<employee>
<name>zhangsan</name>
<position>经理</position>
</employee>
<employee>
<name>1</name>
<position>1</position>
</employee>
</employees>
求这个PHP函数
<employees>
<employee>
<name>张三</name>
<position>经理</position>
</employee>
<employee>
<name>李四</name>
<position>助理</position>
</employee>
<employee>
<name>李四</name>
<position>助理</position>
</employee>
<employee>
<name>王五</name>
<position>讲师</position>
</employee>
</employees>
需要一个PHP对这个XML进行处理后,生成一个新的XML。要求是: 对<name></name>里的字符串,
都要进行调用 fanyi($str)这个函数,并用返回值 替换 原值。但另外两点:
如果这个函数的返回值为 1 ,那么就需要将它的<position>里的值变成 1.
如果这个函数的返回值为 0 ,那么就需要将它去掉。
例如,如果fanyi('张三')返回:zhangsan; fanyi('李四')返回:1; fanyi('王五')返回:0。那么经过这个PHP函数后,生成的新XML为:
<?xml version="1.0"?>
<employees>
<employee>
<name>zhangsan</name>
<position>经理</position>
</employee>
<employee>
<name>1</name>
<position>1</position>
</employee>
</employees>
求这个PHP函数
<?php
$xml_str = '<?xml version="1.0"?>
<employees>
<employee>
<name>张三</name>
<position>经理</position>
</employee>
<employee>
<name>李四</name>
<position>助理</position>
</employee>
<employee>
<name>王五</name>
<position>讲师</position>
</employee>
</employees>
';
$xml = simplexml_load_string($xml_str);
$count = count($xml->employee);
for($i = 0;$i < $count;$i++) {
$node = $xml->employee[$i];
$name_fanyi = fanyi($node->name);
if ($name_fanyi === 1) {
$node->name = $node->position = 1;
} elseif ($name_fanyi === 0) {
unset($xml->employee[$i]);
} else {
$node->name = $name_fanyi;
}
}
print_r($xml);
function fanyi($name)
{
switch ($name) {
case '张三':
return 'zhangsan';
break;
case '李四':
return 1;
break;
case '王五':
default:
return 0;
break;
}
}?>
将
print_r($xml);
换成
echo $xml->asXML();
就可以输出xml了