Şu anda SAX kullanarak internetten veri alan bir uygulama geliştiriyorum. Google Weather API gibi basit XML dosyalarını ayrıştırmak için daha önce kullandım. Bununla birlikte, ilgilendiğim web siteleri bir sonraki seviyeye ayrıştırmaktır. Sayfa çok büyük ve dağınık görünüyor. Sadece bazı belirli satırları almam gerek; gerisi benim için uygun değil.
Bu gereksiz satırları/etiketleri atlamak mümkün mü yoksa adım adım mı gitmem gerekiyor?SAX ayrıştırıcısını kullanarak büyük XML dosyalarını ayrıştırma (bazı satırları/etiketleri atla)
cevap
Evet, atlayabilirsiniz. Sadece istediğiniz etiketi tanımlayın ve sadece bu etiket değerlerini getirin.
ile xml erişmesini sağlar düşünüyorum, cevabın beni uzun kurtaracak kod satırları! – Amine
Xml'nizi ayrıştırmak için sahnenin arkasında SAX kullanacak XPath kullanmayı deneyebilirsiniz. Buradaki dezavantaj, Xpath değerlendirme yönteminin her çağrısında XML'in ayrıştırılacağıdır. Daha sonra DOM çözümleyici SAX parser..SAX ayrıştırıcı çok daha hızlıdır
Cevabınız için teşekkürler Bu olasılığı göreceğim! – Amine
Sen
SAX ayrıştırma DOM'den çok daha hızlıdır. DOM ayrıca, tüm belgenin belleğe alınmasını gerektirir. –
Cevabınız için çok teşekkürler, yardımlarınız için gerçekten minnettarım, DOM'u kullanmaya çalışacağım ve hangi çıktıları aldığımı göreceğim! – Amine
Evet sadece etiketleri yok, bunu yapabilir .. Eğer büyük XML dosyalarını ayrıştırmak istiyorsanız yararlıdır özel etiketleri okumak istiyorum Eğer ilgilenmiyor. Ama ilginç parçaları alma için ayrıştırılabilir XML belgesi ve XPath oluşturmak için TagSoup bir kombinasyonunu deneyebilirsiniz
public startElement(String uri, String localName,
String qName, Attributes attributes) {
if(localName.equals("myInterestingTag") {
// do your thing....
}
}
public void endElement(String uri, String localName, String qName) {
if(localName.equals("myInterestingTag") {
// do your thing....
}
}
public void characters(char[] ch, int start, int length) {
// if parsing myinteresting tag... do some stuff.
}
Teşekkürler, ben genellikle böyle yaparım;)! – Amine
atlamak için SAX kullanarak bir strateji için de benzer bir soruya cevabım/etiketleri yok Bakınız: Bu XMLReader üzerine ContentHandlers anahtarlama içerir
. XML belgesinin bir portunu okurken, atlamak istediğinizde, sadece bir ContentHandler içinde, olaylarla hiçbir şey yapmadan değiştiriniz. Göz ardı edilecek bölümün sonuna ulaşıldığında, XML içeriğini işlemek için kullandığınız içerik işleyicisine geri denetimden geçirir.
Cevabınız kesinlikle benim hedefe ulaşmanıza yardımcı olacak!çok teşekkürler -Cheers – Amine
Commons-digester'ı severim. Belirli etiketlere karşı kurallar belirlemenizi sağlar. Kural, yalnızca etiketle karşılaştığında yürütülür.
Digester sax üzerinde inşa edilmiştir ve bu nedenle tüm sax özelliklerine ve belirli etiketlerin seçici olarak ayrıştırılması için gerekli olan özgüllüğe sahiptir. Ayrıca, karşılık gelen etiketle karşılaşıldığında ve öğe bittiğinde yeni öğelerle itilen bir yığını kullanır.
Tüm yapılandırma dosyalarımı ayrıştırmak için kullanıyorum. http://commons.apache.org/digester/
Çok teşekkürler Raja, Bu çözüme bakacağım !! – Amine
- 1. Python'da büyük sözde xml dosyalarını ayrıştırma
- 2. Java SAX Ayrıştırma
- 3. XML dökümantasyon dosyalarını Web Deployment ile atla
- 4. Son derece büyük XML dosyalarını php olarak ayrıştırma
- 5. Hafif C++ SAX XML ayrıştırıcısı
- 6. Java SAX ile XML ayrıştırmak, büyük/küçük harf duyarlı.
- 7. XDocument kullanarak XML ayrıştırma
- 8. Büyük/büyük XML dosyalarını yayınlamak için XmlReader'ı PowerShell'de nasıl kullanabilirim?
- 9. Java XML ayrıştırma için DOM kullanarak ayrıştırma
- 10. RapidXML Derinlikteki XML Ayrıştırma İlk modu
- 11. Dataweave kullanarak dosyaya yazarken xml bildirimi atla
- 12. Büyük XML dosyalarını ayrıştırmak için Nokogiri :: XML :: Reader'ı nasıl kullanırım?
- 13. Android'in XML Ayrıştırma tekniği
- 14. Ayrıştırma XML
- 15. GPU Hızlandırılmış XML Ayrıştırma
- 16. ElementTree örneği kullanarak Python'da XML ayrıştırma
- 17. Python ayrıştırma xml dosyası
- 18. Xml ayrıştırma Apache Kafka
- 19. SAX Ayrıştırıcısı
- 20. Python BeautifulSoup XML Ayrıştırma
- 21. XML ile Ayrıştırma XML CDATA
- 22. Ayrıştırma XML dosyaları: XML nodeset
- 23. Bir XML dizgisini libxml2 kütüphanesini kullanarak XML belgesi yerine ayrıştırma
- 24. Bazı XML
- 25. Büyük veri dosyalarını IEnumerable
- 26. SAX: Bir öğenin içeriği nasıl elde edilir
- 27. NSXMLParser içinde xml ayrıştırma
- 28. Haskell'deki XML Ayrıştırma
- 29. xml, bazı JSA
- 30. PHP'de XML dosyalarını birleştirme
de çürütücü
Kontrol dışarı ben genişletilmiş VTD-xml bir Lot Thaks SAX çok daha iyi bir hafıza verimli bir şekilde rastgele erişime veya apache çürütücü –