2014-08-29 26 views
8

Apache POI'nin bazı bölümlerini anlamaya çalışıyorum. Örneğin, mevcut bir docx dosyasından metin (veya tablo vb.) Almaya çalışıyorum. Örneğin, there is a method getParagraph(..CTP p) in XWPFDocument:
"Bir CTP sınıfı p olan bir paragraf" döndürür. Ama CTP sınıfı nedir? Belgenin xml yapısına baktım ama benzer bir şey bulamadım. Sonuç olarak, ilk etapta mthod'u nasıl arayacağımı bilmiyorum. Aynı XWPFDocument için There is also a method getTable(CTTbl CTTbl), "CTtbl-Object tarafından bir tablo döndürür.Apache POI'de CTP, CTTbl sınıfları (nesneler) nedir?

Bir CP * ooxml belgeleri içindeki her bölüm/veri türü için bir şey var gibi görünüyor, bu yüzden nasıl çalıştığını anlamak istiyorum Ayrıca belgelerden, bu yöntemlerin koleksiyona yapıştırmadan ya da konumlarını tahmin etmeden öğelerini almanın tek doğrudan yolu olduğu görülmektedir.

cevap

7

CTx sınıfları XMLBeans wrappers şeklindedir. OOXML belirtimi XML şema dosyalarını yayımladı

Dosyadaki xml öğesi bir p ise, sonuçta oluşan XMLBeans sarıcısı OOXML için CTP olacaktır. table ise, CTTable olacaktır. Xml öğesinin ad alanı, sınıfın paketini oluşturacaktır. Bu nedenle, aynı yerel adla ancak farklı ad alanlarına sahip iki farklı öğeniz varsa, hangisini istediğinizi bu şekilde çalıştırabilirsiniz.

Başka bir seçeneğiniz varsa, CT sınıflarıyla çalışma. Bunlar düşük seviyededir ve temel dosya formatının yapısı ve formatını bilmenizi gerektirir. Normalde sadece gelişmiş kullanım durumları için gereklidir.

Apache POI usermodel sarma sınıfları ile ortak bir kullanım için yapmak isteyeceğiniz hemen hemen her şey mümkün olacaktır.