2011-11-17 150 views
1

已經有很多關於這方面的問題,我幾乎讀過所有這些問題。我明白,當涉及RTF時,沒有一個圖書館會做我們想做的一切。將RTF轉換爲XML

但是,我正在尋找將以下格式的RTF文檔轉換爲XML的全新視角。

這是基本上,該文檔沒有被正確構造的格式

 01. AAAAAA 
       01.1 BBBBB 
       01.2 CCCCC 
       01.3 DDDDD 
    02. ZZZZZZ 
       2.1 YYYYYY 
       2.2 XXXXXX 
         2.2.1 SUBSUB 
       2.3 QQQQQ 
       2.4 MMMM 


    03. GGGGG 
       3.1 LLLLLLLL 
       3.2 NNNNN 

。它在一些地方有額外的空間,子列表數量不平等等,

有什麼辦法將它轉換成像維持層次結構的XML一樣的結構化格式嗎?

我看了一下Apache Tikka。該庫從RTF文檔中提取文本,但由於該文檔沒有正確分隔,我不確定層次結構如何維護。

是否還有其他開源庫?

有關如何解決此問題的任何建議?

回答

0

如果您可以從文檔中提取文本,也許您可​​以使用正則表達式來解析其內容並創建必要的結構?你可以遍歷像/^\s*([0-9.])+\s*(\w+)/圖案的搜索,再算上在第一個匹配組的點,並加入新的元素:

  • 如果點數等於在先前處理的元素點數 - 爲兄弟;
  • 如果更大 - 作爲其子女,
  • 如果更小 - 作爲其父母的兄弟姐妹。