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

Posted

技术标签:

【中文标题】Java 和 XML:如何获取包含文件的列表【英文标题】:Java and XML: How to get list of included files 【发布时间】:2011-10-02 13:58:29 【问题描述】:

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


]>

    第三章
        &externalFile;
解析器创建DOM成功,但是如何获取包含的文件名?元素xi:include 已经替换为文件内容。

【问题讨论】:

你是如何解析 xml 的?你在使用标准的 Java DOM 解析吗? 是的,我愿意。我创建了一个DocumentBuilderFactory 实例,然后创建了一个文档构建器实例。文档生成器使用 Xerces。 【参考方案1】:

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

使用SAXParser 构造函数传递您的DefaultHandler 子类。

【讨论】:

非常感谢。有用。对于所有包含的文件(x 包含或作为实体包含),该方法获取合并为 systemId 参数的文件的绝对路径。

以上是关于Java 和 XML:如何获取包含文件的列表的主要内容,如果未能解决你的问题,请参考以下文章

如何获取其他页面上可用的复杂节点的“列表”

如何获取通用java树中所有祖先的列表

如何从 arrays.xml 文件中获取字符串数组

如何从 Laravel 5 的模块/目录中获取路由列表?

java语句如何获取XML文件的节点值

如何在Java(Android)中解析包含XML的字符串[重复]