- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想对 SimpleXML 对象中的每个节点应用一个函数。
<api>
<stuff>ABC</stuff>
<things>
<thing>DEF</thing>
<thing>GHI</thing>
<thing>JKL</thing>
</things>
</api>
//函数reverseText($str){};
<api>
<stuff>CBA</stuff>
<things>
<thing>FED</thing>
<thing>IHG</thing>
<thing>LKJ</thing>
</things>
</api>
我如何将 reverseText() 应用于每个节点以获取第二个 XML 片段?
最佳答案
这里是 Standard PHP Library可以前来救援。
一个选择是使用(鲜为人知的)SimpleXMLIterator
.它是几个 RecursiveIterator
之一在 PHP 和 RecursiveIteratorIterator
中可用来自 SPL 的可用于循环并更改所有元素的文本。
$source = '
<api>
<stuff>ABC</stuff>
<things>
<thing>DEF</thing>
<thing>GHI</thing>
<thing>JKL</thing>
</things>
</api>
';
$xml = new SimpleXMLIterator($source);
$iterator = new RecursiveIteratorIterator($xml);
foreach ($iterator as $element) {
// Use array-style syntax to write new text to the element
$element[0] = strrev($element);
}
echo $xml->asXML();
上面的例子输出如下:
<?xml version="1.0"?>
<api>
<stuff>CBA</stuff>
<things>
<thing>FED</thing>
<thing>IHG</thing>
<thing>LKJ</thing>
</things>
</api>
关于用于 SimpleXML 对象的 PHP array_walk_recursive()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17095484/
我有一个菜单数组,它是一个多维数组,我想对每个项目做一些事情,所以我尝试了 array_walk_recursive。这是菜单: $menu = array( array( '
此代码有效,但 $vars 无法在 call() 函数中定义。为什么 $vars 不能传递给 array_walk_recursive()? class lib{ private $libra
此代码有效,但 $vars 无法在 call() 函数中定义。为什么 $vars 不能传递给 array_walk_recursive()? class lib{ private $libra
我如何使用 array_walk_recursive() 而不是这个: function check_value($val){ if(is_array($val)){ foreach($v
只是单纯的好奇。我在 Google 上找不到任何东西,我绝对不想深入研究 PHP 源代码。 是否array_walk_recursive实现尾调用优化? 最佳答案 简答,不:) 另请参阅:https:
如何使用 array_walk_recursive 修改键和值?? 这里只有值被编码 function _utf8_encode($arr){ array_walk_recursive($ar
array_walk_recursive 对数组中的每个成员递归地应用用户函数 基本语法 bool array_walk_recursive ( array &$input , call
我有一个关联数组,它是我使用以下代码从 ODBC 查询创建的: while ($row=odbc_fetch_array($oexec)) { if(empty($gr
我使用以下函数来验证搜索词是否在我的文件夹的文件名中。 $files2=list_files("documents/minelli"); Class Commentaire_filter{
array_walk_recursive($arr, function(&$val, $key){ if($val == 'smth'){ unset($val);
这是我在 php 中的一个类的简化版本: class someClass { public function edit_array($array) { array_walk_recu
我想对 SimpleXML 对象中的每个节点应用一个函数。 ABC DEF GHI JKL //函数reverseText($str){}
我已经查看了这里的一些答案,但似乎没有使用这种方法? 我有一个项目数组,项目是对象。该对象可以有一个键,它是“children”,“children”是一个对象数组等。 有什么办法可以实现吗? 示例:
一段时间以来,我一直在使用“传统”递归函数来展平多维数组,例如 $baseArray = array(array('alpha'), array('beta','
这个问题在这里已经有了答案: In PHP, what is a closure and why does it use the "use" identifier? (6 个答案) 关闭 3 年前。
我有以下代码,我想摆脱调用时间传递引用,(从 5.2 转换为 5.3)但我不确定正确的方法是什么这将是(类,全局变量,?) 这是一个应该包含所有内容的键盘 http://codepad.org/omb
我有一个深度多维数组,需要提取特定键的值。我发现 array_walk_recursive 函数将是我的最佳选择。我只需要第一次出现。 我的数组看起来像这样 - (除了更复杂) Array (
我尝试通过引用 Phps array_walk_recursive 传递第三个参数 $field = 'foo'; array_walk_recursive($config, function($va
我的 mysql 连接使用面向对象的风格,但是如果我这样写: array_walk_recursive($_POST, array($mysqli, 'real_escape_string')); 我
我是一名优秀的程序员,十分优秀!