0

我在 .xml 文件中有与数据库连接相关的属性。我想在 .properties 文件中使用相同的值。是否可以从 .xml 文件中获取值并设置为 .properties?

- 谢谢

使用loadFromXML时出现异常

线程“主”java.util.InvalidPropertiesFormatException 中的异常:org.xml.sax.SAXException:无效的系统标识符:http ://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd at java.util.XMLUtils。 load(XMLUtils.java:76) at java.util.Properties.loadFromXML(Properties.java:868) at com.generalsentiment.test.quartz.CronTriggerExample.run(CronTriggerExample.java:40) at com.generalsentiment.test.quartz .CronTriggerExample.main(CronTriggerExample.java:117) 原因:org.xml.sax.SAXException:无效的系统标识符:http ://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd 在 java.util.XMLUtils$Resolver.resolveEntity(XMLUtils.java:190) 在 org.apache.xerces.util.EntityResolverWrapper.resolveEntity(Unknown Source) 在 org.apache.xerces.impl.XMLEntityManager.resolveEntity(Unknown Source) 在org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) at org. apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) at java.util.XMLUtils.getLoadingDoc(XMLUtils.java:102) at java.util.XMLUtils.load(XMLUtils.java:74) ... 还有 3 个 Java 结果:1

4

2 回答 2

1

将努力使用 .properties 文件中的值创建一个 XML 属性文件。此处未指定 XML 的架构;因此假设它不是 Java XML 属性格式。

Java XML 属性文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>Hi</comment>
<entry key="foo">bar</entry>
<entry key="fu">baz</entry>
</properties>

Java代码:

import java.util.*;
import java.io.*;

public class LoadSampleXML {
  public static void main(String args[]) throws Exception {
    Properties prop = new Properties();
    FileInputStream fis =
      new FileInputStream("sampleprops.xml");
    prop.loadFromXML(fis);
    prop.list(System.out);
    System.out.println("\nThe foo property: " +
        prop.getProperty("foo"));
  }
}

从这里引用的示例代码。

于 2012-06-29T09:17:04.857 回答
1

您是否检查了 javadocs 的属性。有一个loadFromXML方法可以做到这一点。唯一的限制是 XML 文件确认一个特定的结构,并且应该有下面提到的DOCTYPE声明。

<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">

于 2012-06-29T09:18:02.093 回答