java - 如何从同一个包中读取 file.xml?

标签 java xml

我正在尝试读取 Properties.xml 文件,该文件包含在我的类所在的同一包中。

我正在使用此代码用新值更新我的 xml 文件:

到目前为止,我只是想读取该文件:

public void UPdateXML(String filename) throws Exception {
    this.filename = filename;
        System.out.println("Into update xml class");
    try {   
        InputStream fis=BACENGPropertiesFile.class.getResourceAsStream(filename);
        DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
        Document doc = docBuilder.parse((InputStream) fis);

        System.out.println(fis);
        System.out.println(doc);

    Node child = doc.getFirstChild();
        System.out.println(child);

该文件似乎存在并且正在作为 ImputStream 读取。但是当我尝试将文件解析为文档(doc)时,该值为空。

这是服务器日志的退出:

Into update xml class
java.io.BufferedInputStream@78355ed4
[#document: null]
[properties: null]

Properties xml 文件具有以下结构:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
 <properties>
  <entry key="dataImport.path">/Users/Admin/Documents/</entry>
 </properties>

有人可以告诉我出了什么问题吗?

最佳答案

没有什么问题。您的文档不为空:它打印为:

[#document: null]

如果它是null,则会打印:

null

顺便问一下,为什么不通过 Properties.loadFromXML() 加载属性?

Properties p = new Properties();
try (InputStream in = BACENGPropertiesFile.class.getResourceAsStream(filename)) {
    p.loadFromXML(in);
}

关于java - 如何从同一个包中读取 file.xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25421095/

相关文章:

java - 在 XML 文件中搜索字符串

c# - 如何在现有 XML 中添加子元素

xml - 使用不可见的 XML 从文本中提取记录

java - 将View类对象作为参数传递给按钮调用的方法(View View )

python - 使用 lxml 添加 namespace 与根元素不同的 xml 子元素

java - Android - 从自定义ListView中删除项目

java - 使用 Android Studio 将对象或数组列表从一个 fragment 传递到另一个 fragment

Java 编译器无法识别静态内部类

java - 搜索最小二叉堆

java - 这是 Guice 反模式吗?