2014-02-27 119 views
1
的樣式名稱

我想解析一個docx文檔。我使用此代碼來獲取段落並顯示文本:Docx4j:獲取段落

final String XPATH_TO_SELECT_TEXT_NODES = "//w:p"; 
    final List<Object> jaxbNodes = documentPart.getJAXBNodesViaXPath(XPATH_TO_SELECT_TEXT_NODES, true); 

    for (Object jaxbNode : jaxbNodes){ 
      final String paragraphString = jaxbNode.toString(); 
      System.out.println("[Start]: " + paragraphString); 
    }  

但我還需要知道當前段落的樣式名稱。我怎樣才能做到這一點?

感謝您的幫助。 1ceman

回答

1
PPr pPr = ((P)XmlUtils.unwrap(jaxbNode)).getPPr(); 
if (pPr != null && pPr.getPStyle() != null) { 
    String style = pPr.getPStyle().getVal()); 
    // etc 

如果沒有明確的風格,那麼就使用默認的段落樣式(如在樣式部分指定)。

+0

感謝您的解決方案。它的效果很好。上面的代碼和'Ppr pPr =((P)jaxbNode).getPPr()'之間是否有區別? – Iceman

+0

可能不是。 P永遠不能包裝在JAXBElement中; ObjectFactory的createP只是創建一個裸P對象。 – JasonPlutext