0

.xml ファイルに db 接続関連のプロパティがあります。.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(不明なソース) で org.apache.xerces.impl.XMLEntityManager.resolveEntity(不明なソース) でorg.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(不明なソース) org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(不明なソース) org.apache.xerces.parsers.XML11Configuration.parse(不明なソース) org.apache.xerces.parsers.DTDConfiguration.parse(不明なソース) org.apache.xerces.parsers.XMLParser.parse(不明なソース) org.apache.xerces.parsers.DOMParser.parse(不明なソース) org. java.util.XMLUtils.getLoadingDoc(XMLUtils.java:102) の apache.xerces.jaxp.DocumentBuilderImpl.parse(不明なソース) java.util.XMLUtils.load(XMLUtils.java:74) ... 3 つ以上 Java 結果: 1

4

2 に答える 2

1

プロパティのjavadocを確認しましたか。まさにこれを行うloadFromXMLメソッドがあります。唯一の制限は、XML ファイルが特定の構造を確認し、DOCTYPEそこに記載されているように以下の宣言が必要であることです。

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

于 2012-06-29T09:18:02.093 に答える
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 に答える