gpt4 book ai didi

java - 无法使用 XML 文件。输入流为空

转载 作者:行者123 更新时间:2023-11-29 10:13:52 25 4
gpt4 key购买 nike

我在这里做错了什么?我收到错误,输入流中没有任何内容,但情况并非如此。该文件在那里并且标题正确。我想获取我放入 XML 文件中的 IP 地址。有没有更好的方法来解析文件而不是 dBuilder.parse(XMLReader.class.getResourceAsStream("C:\\Tools\\CLA\\test.xml"));

我遇到了这个异常:

Caused by: java.lang.IllegalArgumentException: InputStream cannot be null
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at com.Intel.ameier.XMLparser.TryXML(XMLparser.java:17)

代码如下:

import java.io.IOException;
import org.xml.sax.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;

public class XMLparser {

protected void TryXML() throws ParserConfigurationException, SAXException, IOException{

DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();

DocumentBuilder dBuilder = builderFactory.newDocumentBuilder();
Document document = dBuilder.parse(XMLReader.class.getResourceAsStream("C:\\Tools\\test.xml"));
document.normalize();

NodeList rootNodes = document.getElementsByTagName("info");
Node rootNode = rootNodes.item(0);
Element rootElement = (Element)rootNode;
NodeList compList = rootElement.getElementsByTagName("computer");
for(int i = 0;i < compList.getLength(); i++){

Node computer = compList.item(i);
Element compElement = (Element)computer;

Node theIP = compElement.getElementsByTagName("ipaddress").item(0);
Element theIpElement = (Element)theIP;

System.out.println("The comptuer ip is : " + theIpElement.getTextContent());


}


}


}

XML 文件:

<?xml version="1.0"?>
<info>
<testsuite>
<name></name>
</testsuite>
<computer>
<ipaddress>111.11.11.6</ipaddress>
</computer>
<computer>
<ipaddress>111.11.11.5</ipaddress>
</computer>
<computer>
<ipaddress>111.11.11.3</ipaddress>
</computer>
</info>

最佳答案

这与 XML 无关。您正在使用 Class.getResourceAsStream,这是为了从该类的类加载器的类路径中获取要加载的资源...但是您传递的是一个文件名 相反。

如果要为文件创建输入流,只需使用FileInputStream:

Document document = dBuilder.parse(new FileInputStream("C:\\Tools\\test.xml"));

或者更好,为了关闭流:

Document document:

try (InputStream stream = new FileInputStream("C:\\Tools\\test.xml")) {
document = dBuilder.parse(stream);
}

关于java - 无法使用 XML 文件。输入流为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23997031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com