2013-04-30 30 views
1

我想使用JDOM2從Java中的XML文件構建字符串。 的XML文件片段是我想做的過程如下所示:如何獲取JDOM2元素文本作爲列表,如果其內容由其內部元素分隔?

... 
<title> 
    usefuldatapart1 
    <span profile="id1"> optionaldata1 </span> 
    <span profile="id2"> optionaldata2 </span> 
    <span profile="id3"> optionaldata3 </span> 
    usefuldatapart2 
</title> 
... 

元素「標題」包含分離與內部元件幾部分對我來說有用的文本內容,如果任何配置文件轉積極我必須在正確的部分插入內部元素的內容(一次只能激活一個,但在這種情況下並不重要)。

是否有任何優雅的方式將元素文本返回爲字符串數組作爲進一步操作?

或者,如果我以錯誤的方式得到這個,我怎麼能正確地做到這一點?

(目前與元素「的getText」和「的getContent」方法和患「的XMLOutputter」的基礎)

感謝您的幫助!

回答

0

有可能有多種方式來做到這一點。其中之一是使用XPath,但也許只是簡單的使用後代迭代器和StringBuilder,並檢查每個文本節點的血統....

例如(我正在用手工輸入,不驗證這...):

public String getTitleText(final Element title) { 
    final StringBuilder sb = new StringBuilder(); 
    for (final Text txt : title.getDescendants(Filters.text())) { 
     final Element parent = txt.getParentElement(); 
     if (parent == title || 
       parent.getAttributeValue("active", "not").equals("true")) { 
      sb.append(txt.getValue()); 
     } 
    } 
    return sb.toString(); 
} 
+0

它工作正常,而且很簡單,感謝您的幫助! :) – Syry 2013-05-02 13:11:31

+0

該網站不允許我改進帖子,但代碼中唯一的錯誤是'Filters.text()'而不是'Filter.text()'。 再次感謝! – Syry 2013-05-02 13:18:38

+0

謝謝,修復。請享用 – rolfl 2013-05-02 14:58:01

相關問題