在跟踪顺序的同时导航 XML 文件



>我需要转换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标签"这样的搜索对我没有帮助:-(

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

最新更新