ドキュメント内の各要素に対して解析および文字列操作を実行する必要がある一連の任意の XML ドキュメントがあります。
例えば:
<sample>
<example>
<name>David</name>
<age>21</age>
</example>
</sample>
ノード名と年齢については、strtoupper などの関数を使用して大文字と小文字を変更することをお勧めします。
これを一般的な方法で行うのに苦労しています。これを実現するために RecursiveIteratorIterator を SimpleXMLIterator と共に使用しようとしましたが、xml ドキュメントを更新するための親キーを取得できません。
$iterator = new RecursiveIteratorIterator(new SimpleXMLIterator($xml->asXML()));
foreach ($iterator as $k=> $v) {
$iterator->$k = strtoupper($v);
}
この例の $k は「名前」であるため、これは失敗します。
$xml->name = strtoupper($value);
必要なとき
$xml->example->name = strtoupper($value);
ドキュメントのスキーマが変更されたため、それらすべてを処理するために汎用的なものを使用したいのですが、キーを取得する方法がわかりません。
これは Spl イテレータと simplexml で可能ですか?