[英]How to Read XML Document from URL
嗨,我正在使用文档类。 当我从本地系统读取File时,它正在工作;当我想读取该文件,并尝试从某个URL加载XML Document时,它不起作用。
private static Document loadTestDocument(String fileLocation) throws Exception {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder db = factory.newDocumentBuilder();
File file = new File(fileLocation);
System.out.println(db.parse(file).toString());
return db.parse(file);
}
因此,如果我有一个返回xml的服务,并且想使用它,该方法将返回Document,我该怎么做呢?我想直接从服务GET URL加载。
我尝试了这个但它不起作用
File file = new File("http://someservice/getdata");
错误:找不到文件然后我尝试从Input Stream加载它,但对我来说也不起作用。
InputStream input = new URL("http://someurl:32643/api/values").openStream();
错误:
[Fatal Error] :1:1: Content is not allowed in prolog.
现在,我将如何实现此任何帮助将不胜感激,我想加载从服务接收的数据,并希望在我返回方法时返回该文档。
以下代码对我有用。
TestXML.java
import java.net.URL;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
public class TestXML {
private static Document loadTestDocument(String url) throws Exception {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
return factory.newDocumentBuilder().parse(new URL(url).openStream());
}
public static void main(String[] args) throws Exception {
Document doc = loadTestDocument("http://www.enetpulse.com/wp-content/uploads/sample_xml_feed_enetpulse_soccer.xml");
System.out.println(doc);
doc = loadTestDocument("http://localhost/array.xml");
System.out.println(doc);
}
}
array.xml
<?xml version="1.0"?>
<ArrayOfstring xmlns:i="w3.org/2001/XMLSchema-instance" xmlns="schemas.microsoft.com/2003/10/Serialization/Arrays">
<string>value1</string>
<string>value2</string>
</ArrayOfstring>
您实际上是否需要/使用xmlns属性?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.