2

これは私のコードです。

File file = new File("src/qrcodescanner/xmlpac/"+filename);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder(); 
document = db.parse(file);
document.getDocumentElement().normalize();
4

1 に答える 1

1

赤くできない場合は、おそらく期待した場所にありません。投稿したコードから判断すると、xml ファイルは jar/package 構造内に存在することを意図していると思います。

これは私のテストプロジェクトの構造です:

src
 |-- main
     |-- java
         |-- mypackage
                 MyCode.java
                 MyResource.xml

対応する生成された jar ファイルはtarget/directory にあり、次のようになります。

 mypackage
     MyCode.class
     MyResource.xml

MyResource.xml次のようになります。

<a>b</a>

MyCode.java次のようになります。

public class MyCode {

public static void main(String[] args) throws Exception {        
    String packagePath= "/mypackage/MyResource.xml";
    String myPath ="src/main/java"+packagePath;
    File f = new File(myPath);
    System.out.println(f.exists());        
    InputStream is = Class.class.getResourceAsStream(packagePath);                
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder(); 
    Document d = db.parse(is);
    System.out.println(d.getElementsByTagName("a").item(0).getTextContent());         
    }    
}

実行すると、次のように出力されます。

true
b

メソッドgetResourceAsStreamは、JAR 内からリソースをロードするために使用されます。それが役立つことを願っています。

于 2012-12-31T10:16:01.807 に答える