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/包结构中。

这是我的测试项目结构:

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

对应生成的 jar 文件位于target/目录下,如下所示:

 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 回答