无法使用JAVA从网站提取xml数据
我试图提取JAVA中给定纬度和经度的酒店名称数据。我收到以下错误:[致命错误]:1:1:prolog中不允许包含内容。 这是我试图从中提取信息的代码和URL。对这个问题有什么建议吗无法使用JAVA从网站提取xml数据,java,xml,parsing,Java,Xml,Parsing,我试图提取JAVA中给定纬度和经度的酒店名称数据。我收到以下错误:[致命错误]:1:1:prolog中不允许包含内容。 这是我试图从中提取信息的代码和URL。对这个问题有什么建议吗 URL url = new URL("https://api.eancdn.com/ean-services/rs/hotel/v3/list?apiKey=vkndmgahz5aekd65pxg4rvvp&locale=en_US¤cyCode=USD&
URL url = new URL("https://api.eancdn.com/ean-services/rs/hotel/v3/list?apiKey=vkndmgahz5aekd65pxg4rvvp&locale=en_US¤cyCode=USD&latitude=51.514&longitude=-0.269"");
InputStream is = url.openStream();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(is);
NodeList itemList =
doc.getElementsByTagName("HotelSummary");
Node itemNode;
Element itemElt;
for(int k=0; k < itemList.getLength(); k++)
{
itemNode = itemList.item(k);
if(itemNode.getNodeType() == Node.ELEMENT_NODE) {
itemElt = (Element) itemNode;
System.out.println("Hotel name: "+itemElt.getElementsByTagName("name").item(0).getTextContent());
URL=新URL(“https://api.eancdn.com/ean-services/rs/hotel/v3/list?apiKey=vkndmgahz5aekd65pxg4rvvp&locale=en_US¤cyCode=USD&latitude=51.514&longitude=-0.269"");
InputStream=url.openStream();
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
文档doc=db.parse(is);
节点列表项列表=
getElementsByTagName文件(“HotelSummary”);
节点项节点;
元素项elt;
for(int k=0;k
出了什么问题
如果运行以下代码,您将看到返回的数据不是XML,而是JSON
import java.net.URL;
import java.io.InputStream;
public class Demo {
public static void main(String[] args) throws Exception {
URL url = new URL("https://api.eancdn.com/ean-services/rs/hotel/v3/list?apiKey=vkndmgahz5aekd65pxg4rvvp&locale=en_US¤cyCode=USD&latitude=51.514&longitude=-0.269");
InputStream is = url.openStream();
int next = is.read();
while(next != -1) {
System.out.print((char) next);
next = is.read();
}
}
}
以XML的形式获取数据
您可以使用HttpURLConnection
以XML形式请求数据:
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.InputStream;
import javax.xml.parsers.*;
import org.w3c.dom.Document;
public class Demo {
public static void main(String[] args) throws Exception {
URL url = new URL("https://api.eancdn.com/ean-services/rs/hotel/v3/list?apiKey=vkndmgahz5aekd65pxg4rvvp&locale=en_US¤cyCode=USD&latitude=51.514&longitude=-0.269");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Accept", "application/xml");
InputStream is = connection.getInputStream();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(is);
}
}
我已经检查了另一篇文章,但它没有解决我的问题,因为除了从在线数据库检索的文件外,xml文件的开头没有UTF-8