0

我需要转换 IOB 格式的 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>

我想要做的是保留所有文本,但将其转换为不同的格式,即我想删除 BODY 结构,只需像这样标记 HEADER 和文本部分:

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 标签”这样的搜索对我没有帮助:-(

4

1 回答 1

0

我会使用基于事件的 xml 解析器,如 sTax、sax 等。然后您可以在处理每个标签时跟踪级别、顺序和其他内容。

于 2012-05-14T23:37:28.750 回答