Aşağıdakileri yapmaya çalışıyorum ve yardıma ihtiyacım var:Akış ayrıştırması PHP'de 4 GB XML dosyası
Büyük bir XML dosyasını (4 GB) PHP ile ayrıştırmak istiyorum. Basit XML veya DOM kullanamıyorum çünkü tüm dosyayı belleğe yükledikleri için dosyayı aktarabilecek bir şeye ihtiyacım var.
Bunu PHP'de nasıl yapabilirim?
Yapmaya çalıştığım şey bir dizi <doc>
öğesinde gezinmektir. Ve çocuklarından bazılarını yeni bir xml dosyasına yaz.
XML dosyası
böyle görünüyor ayrıştırmak çalışıyorum:<feed>
<doc>
<title>Title of first doc is here</title>
<url>URL is here</url>
<abstract>Abstract is here...</abstract>
<links>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
</link>
</doc>
<doc>
<title>Title of second doc is here</title>
<url>URL is here</url>
<abstract>Abstract is here...</abstract>
<links>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
</link>
</doc>
</feed>
G/almak <links>
elemanı ve çocuklar hariç yeni bir XML dosyası içine her <doc>
elementin tüm çocukları kopyalamak çalışıyorum .
<doc>
<title>Title of first doc is here</title>
<url>URL is here</url>
<abstract>Abstract is here...</abstract>
</doc>
<doc>
<title>Title of second doc is here</title>
<url>URL is here</url>
<abstract>Abstract is here...</abstract>
</doc>
Ben büyük ölçüde akışı/dere ayrıştırma/akışı orijinal XML dosyası okuma ve daha sonra içeriklerinden bazıları yazılı olarak her türlü yardımı takdir ediyorum:
yüzden gibi yeni XML dosyası bakmak istiyorum PHP'de yeni bir XML dosyasına.
Kontrol dışarı XMLReader sınıfı: http: //www.php.net/manual/en/intro.xmlreader.php Bu bir akış ayrıştırıcısıdır. Daha spesifik sorulara yardımcı olup olamayacağımı görmek için şu anda sorunuzu daha derinden okuyorum. – DeeDee
@DeeDee XMLReader'ı duymuştum, ancak nasıl kullanılacağını bilmiyordum. Yardım için teşekkürler! –
Elbette! Resmi belgelerde yapılan yorumların yetersizliğinden de anlaşıldığı üzere çok fazla kullanılmıyor. Ben çok uzun zamandır kullanmıyorum. Kodumun nasıl çalıştığını bana bildirir misin? Eğer hemen işe yaramıyorsa, işbirliği yapabilir ve neyin olduğunu anlayabiliriz. – DeeDee