我正在解析XML维基百科数据转储,我想拉出一个页面并将其转换为带有页面精简版本的新XML文档 . 例如,在每个页面中,我只对 Headers ,ID,时间戳,用户名和文本感兴趣 .
这是一个完整的维基百科页面:
<page>
<title>AccessibleComputing</title>
<ns>0</ns>
<id>10</id>
<redirect title="Computer accessibility" />
<revision>
<id>381202555</id>
<timestamp>2010-08-26T22:38:36Z</timestamp>
<contributor>
<username>OlEnglish</username>
<id>7181920</id>
</contributor>
<minor />
<comment>[[Help:Reverting|Reverted]] edits by [[Special:Contributions/76.28.186.133|76.28.186.133]] ([[User talk:76.28.186.133|talk]]) to last version by Gurch</comment>
<text xml:space="preserve">#REDIRECT [[Computer accessibility]] {{R from CamelCase}}</text>
<sha1 />
</revision>
</page>
剥离完成后我想最终得到的结果是这样的:
<page>
<title>AccessibleComputing</title>
<id>10</id>
<revision>
<timestamp>2010-08-26T22:38:36Z</timestamp>
<contributor>
<username>OlEnglish</username>
</contributor>
<text xml:space="preserve">#REDIRECT [[Computer accessibility]] {{R from CamelCase}}</text>
</revision>
</page>
由于这些文件的大小我知道我不能使用DOM来处理这个问题 . 我知道如何设置SAX解析器,但在解析文档时构建新XML文件的最佳方法是什么?
谢谢
2 回答
您可以使用XMLFilterImpl并只保留您需要的内容,这里有一个想法,输入和输出都是流,因此它可以处理任何大小的XML
在这里,我使用SAX Parser实现解析,提取 Headers 元素和 Headers
维基百科转储文件中的重定向元素中的属性 .