Ben sayfada XML öğeleri değerlendirerek sayfadaki öğeleri koyar sayfa ekranı için tanımlanan özel bir XML şema var. Bu, şu anda preg düzenli ifade işlevleri esas olarak çok iyi preg_replace_callback fonksiyonu, örneğin, kullanılarak gerçekleştirilir:
...
$s = preg_replace_callback("!<field>(.*?)</field>!", replace_field, $s);
...
function replace_field($groups) {
return isset($fields[$group[1]) ? $fields[$groups[1]] : "";
}
Sadece bir örnek olarak.
Şimdi bu kadar uzun XML öğeleri iç içe değil gibi ... oldukça iyi çalışıyor. Eğer varsa böyle bu noktada, bir sürü daha karmaşık alır:
<field name="outer">
<field name="inner">
...
</field>
</field>
Eğer ilk içteki alanını değiştirmek emin olmak istiyorum. Açgözlü / non-açgözlü Şablon akıllıca kullanımı bu daha karmaşık senaryoları işleme bazı yol gidebilirsiniz ama net bir mesaj ben makul yapabilirim Regex ne sınırlarını uzatıyorum ve gerçekten ben XML ayrıştırma yapıyor olması gerektiğidir.
Ne istiyorum ki bir XML dönüşüm paketi:
allows me to conditionally evaluate/include the contained document tree or not based on a callback function ideally (analagous to preg_replace_callback); can handle nested elements of the same or different types; and handles attributes in a nice way (eg as an associative array).
Ne yol boyunca bana yardımcı olabilir?