Java和XML:如何获取包含文件的列表

时间:2011-07-11 07:25:11

标签: java xml xinclude xml-entities

我有Xinclude或实体包含文件的问题。我需要知道,解析器包含哪些文件。示例:

<?xml version="1.0" ?>
<!DOCTYPE docBookChapter [
    <!ENTITY externalFile SYSTEM "entityIncluded.xml">
]>
<chapter xmlns="http://www.w3.org/1999/xhtml"
xmlns:xi="http://www.w3.org/2001/XInclude">
    <title>Third chapter</title>
    <xi:include href="xIncluded.xml"/>
    <chapter>
        &externalFile;</chapter>
</chapter>
解析器成功创建DOM,但是如何获取文件名?元素xi:include已替换为文件内容。

1 个答案:

答案 0 :(得分:1)

扩展DefaultHandler@Overwrite resolveEntity方法。您的实现将只打印或记录publicId / systemId并返回null,因此SAXParser将使用默认行为来解析实体。

DefaultHandler子类与SAXParser构造函数一起传递。