2012-05-14 59 views
0

我需要轉換IOB格式的XML文件。在跟蹤訂單的同時瀏覽XML文件

XML文件表示Latex書面文件的結構,即包含章節和小節。在這種表示中,節被編碼爲BODY,然後我有一個HEADER,然後是段落或小節。

例子:

<DIV DEPTH="1"> 
<HEADER ID="H-8"> Practical Results </HEADER> 
<P TYPE="TXT"> 
<S ID="S-56" TYPE="TXT"> To assess its performance , <REF REFID="R-12" ID="C-36">Grover et al. 1993</REF> tried various methods . </S> 
<S ID="S-57" TYPE="TXT"> The grammar is defined in metagrammatical formalism which is compiled into a unification-based ` object grammar ' -- a syntactic variant of the Definite Clause Grammar formalism <REF REFID="R-21" ID="C-37">Pereira and Warren 1980</REF> -- containing 84 features and 782 phrase structure rules . </S> 
<DIV DEPTH="2"> 
<HEADER ID="H-9"> Comparing the Parsers </HEADER> 
<P TYPE="TXT"> 
<S ID="S-61" TYPE="TXT"> In the first experiment , the ANLT grammar was loaded and a set of sentences was input to each of the three parsers . </S> 
</P> 
<IMAGE ID="I-0"/> 
</DIV> 

我想要做的就是讓所有的文本,但它轉換成不同的格式,也就是我想刪除的車身結構,只是標籤的標題和正文部分是這樣的:

Practical/B-Header Results/I-Header ./O 
To/B-Text assess/I-Text its/I-Text performance/I-Text ,/I-Text Grover/I-Text et/I-Text al./I-Text tried/I-Text various/I-Text methods/I-Text ./O 
The/B-Text grammar/I-Text ... ./O 

依此類推。我知道一些在Java中的DOM解析(例如,我一直在使用jdom2),但我不知道如何保持文本的順序:例如,我想獲取內容的REF標籤(它位於S中,查看示例),但其父項的文本在REF標籤之前和之後延伸。

任何指針?應該相當簡單,但像「剝去一定深度的XML標籤」的搜索沒有幫助我:-(

回答

0

我會使用基於事件的XML解析器,如sTax,薩克斯等等。然後,你可以跟蹤水平,秩序和其他東西,因爲你處理每個標籤。