2013-03-28 17 views
5

Bir Wikia sayfasından bilgi çeken ve bunu uygulamada görüntüleyen bir Android uygulaması geliştiriyorum. Şu anda gezinmek için tüm kategorilerimi çekiyorum ve sayfamı bir Web Görünümünde görüntülemek için ayarlamamı istiyorum, ancak sadece WebView'e geçerek onu ucuzlaştırmak yerine kendimi biçimlendirmek ve biçimlendirmek istiyorum.Bir Wikia sayfasından metin almak için MediaWiki'yi kullanıyorum ama büyük bir karmaşa içinde geri geliyor, her bölümden metin almak için bunu yapabileceğim daha iyi bir yol var mı?

Ya metni almak için kullanıyorum geçerli: http://scottlandminecraft.wikia.com/api.php?format=xml&action=query&titles=ZackScott&prop=revisions&rvprop=content

Benim sorunum metin geri büyük bir yığın geliyor ise, herkes bu yüzden etiketlerinden ayrıştırmak olabilir bu daha biçimlendirilmiş için nasıl için herhangi bir fikirleri var mı ya da zamanımı bulmaya çalışıyordum? Öyleyse, bu çekilişteki metinde tanımlayıcılardan geçerek ihtiyacım olan metni ayrıştırmanın bir yolunu bulmak daha mı iyi olurdu yoksa daha iyi bir yol var mı?

Giriş ve zaman ayırdığınız için teşekkür ederiz.

+1

Sana "büyük kümeleşme" dediğimiz görmüyorum: bir örnek için bu API sorgusu bakın. Bu, sayfanın wikitextini içeren bir XML belgesidir - sadece api aramanızın talepleri. Hangi verilerden sonra, işlenen HTML? – Bergi

+0

Ben "büyük yığın" Ben bunu yaparken çekiyorum metin kütlesi, bu sayfadan istediğim tüm metin alır ama çok organize değil, sadece var mı emin değilim XML ile ayrıştırmayı kolaylaştıracak metni çekmenin daha iyi bir yolu ya da başka bir biçimle gitmem ve daha sonra buradan ayrıştırılan diğer HTML dosyaları gibi mükemmel seçenekler verdiğim gibi ayrıştırmam gerekiyor. – kikurself

+0

Wikisyntax ayrıştırma ağacını ister misin? Düz wikitext, xml ile sarılmış değil mi? – Bergi

cevap

11

En kolay yol, wiki işaretlemesini kendiniz ayrıştırmak istemezseniz, sayfanın ayrıştırılmış HTML sürümünü almak ve daha sonra bir HTML ayrıştırıcısı kullanarak işlemek (örneğin, Hasham tarafından önerildiği gibi jsoup).

sadece (size navigasyon deride sarılmış sayfa HTML verecektir) Normal wiki kullanıcı arabirimini kazıma yanı sıra, MediaWiki sayfanın HTML metnini almanın iki yolu vardır:

  1. kullanmak Bu gibi (JSON/YAML/vb veya) yanıtı MediaWiki API XML sarılı sayfa HTML dönecektir action=parse ile API:

  2. veya sadece sayfa HTML dönecektir action=render ana index.php senaryoyu kullanın:

Ps. Sorunuzdaki bölümlerden bahsettiğinize göre, action=parse API modülünün sayfadaki bölümler hakkındaki bilgileri prop=sections (veya prop=sections|text) kullanarak döndürebileceğine dikkat edin.

+0

Çözümünüz benimkinden daha iyi. –

1

html belgesini ayrıştırmak istiyorsanız o zaman Jsoup seçimdir.

+0

http://scottlandminecraft.wikia.com/api.php?format=xml&action=query&titles=ZackScott&prop=revisions&rvprop=content – Bergi

+0

adresinde bir HTML belgesi yoktur. Onun xml'sini JSOUP ile ayrıştırabilirsiniz. – Hasham

+0

Hayır. XML için * yapmazsınız * bir HTML ayrıştırıcısı kullanın. – Bergi

İlgili konular