本来是想用dom4j直接读取url的,但是读取url时,会出现
org.dom4j.DocumentException: Error on line 1 of document : Content is not allowed in prolog. Nested exception: Content is not allowed in prolog.
的错误。
google后,说是多了个空格,哎,url多了个空格咋搞?
请教高手指点
有的xml中含有中文,这里拿google的天气api来做说明
如何让dom4j读取xml的中文呢(当然需要2个必备包,附件下载即可)
private Document readXML(String url) throws MalformedURLException,
DocumentException, UnsupportedEncodingException {
SAXReader reader = new SAXReader();
byte[] bytes = url.getBytes();
InputStream in = new ByteArrayInputStream(bytes);
InputStreamReader strInStream = new InputStreamReader(in, "GBK");
Document document = reader.read(strInStream);
return document;
}
这样就可以读取中文了
Document weatherDoc = null;
try {
weatherDoc = readXML("http://www.google.com/ig/api?hl=zh-cn&weather=changzhou");
//weatherDoc = readXML(new File("c://api.xml"));
} catch (DocumentException e) {
e.printStackTrace();
}
//List list = weatherDoc.selectNodes("//xml_api_reply/weather/forecast_information");
Node node = weatherDoc.selectSingleNode("//xml_api_reply/weather/current_conditions/condition");
System.out.println(node.getName());
String name = node.valueOf("@data");
System.out.println(name);
@data出来了,今天“晴
”
分享到:
相关推荐
标题中的"google-gson-2.2.4_dom4j-1.6.1_commons-io-2.4"指的是三个流行的Java库:Google Gson 2.2.4,Dom4j 1.6.1,以及Apache Commons IO 2.4。这些库在Java开发中扮演着重要的角色,主要涉及数据序列化、XML处理...
DOM4J是一个非常优秀的Java XML API,它提供了全面而强大的XML处理功能,包括读取、创建、修改和查询XML文档。这个压缩包“dom4j-1.6.1-API+源代码-中文版.rar”包含了DOM4J 1.6.1版本的中文API文档和带有中文注释的...
DOM4J的核心特性包括创建、修改和读取XML文档,以及强大的文档遍历和搜索能力。在项目中,DOM4J经常用于解析XML配置文件或从XML数据中提取信息。 Gson是Google提供的一个开源库,它允许Java对象和JSON数据之间进行...
在本项目中,我们需要一个**XML解析器** 来读取和处理Google Search API返回的数据。C语言中有许多开源的XML解析库可供选择,比如TinyXML、libxml2等。XML解析器的工作包括解析XML文档、创建DOM树(Document Object ...
最后,要注意的是,虽然本项目以谷歌天气预报为例,但其实现方法适用于任何提供XML数据的在线服务。通过这个项目,你可以提升对JSP、XML以及API调用的理解,并能将其应用到其他类似的情景中。 总结一下,JSP XML...
XML-Pull解析器在读取XML文档时,只处理当前的事件,这样可以节省内存,尤其适合处理大型XML文件。在Android开发中,XML-Pull解析常用于网络数据的解析,因为它高效且内存友好。 首先,我们需要了解如何使用XML-...
读取xml文件,实现轨迹回放”探讨了如何利用API来读取XML文件,进而实现车辆轨迹的动态回放功能。这个功能在物流、交通管理和地理信息系统(GIS)等领域有着重要的应用。 首先,我们要理解Google Maps API的基本...
- 解析示例可能演示如何读取XML文件,然后使用DOM、SAX或Pull解析器来提取数据。 5. **最佳实践**: - 在序列化和反序列化时,注意处理异常,确保数据的完整性和一致性。 - 对于大型XML文件,优先考虑SAX或Pull...
在C++中,使用动态链接库进行XML读取,需要先将XML库编译为DLL,然后在应用中通过函数调用来实现XML处理。例如,TinyXML库可以被编译成DLL,程序中通过`#import`或`LoadLibrary/GetProcAddress`等方式调用库函数。 ...
虽然`XMLHttpRequest`通常用于与服务器进行异步通信,但在某些情况下,如在本地环境中,也可以通过创建一个`file:`协议的URL来读取XML文件。不过,这种方式在现代浏览器中由于同源策略限制,已经被废弃,且不支持...
其中,SAX解析器是一种事件驱动的解析器,它读取XML文档并触发一系列的事件,例如开始元素、结束元素、字符数据等,这使得SAX解析器在处理大型XML文档时比DOM更节省内存。 以下是使用SAX解析XML天气数据的基本步骤...
2. SAX解析器:与DOM不同,SAX采用事件驱动模型,逐行读取XML文件,遇到元素、属性等时触发相应的回调函数。这种方式适用于处理大文件,因为它不需要一次性加载整个XML。然而,SAX解析器需要开发者手动编写回调函数...
XML解析器的主要任务是读取XML文档,并将其转换成可操作的数据结构,如对象模型,使开发人员可以方便地访问和处理XML数据。Google的XML解析库可能采用了两种解析策略:DOM(Document Object Model)和SAX(Simple ...
该方法名为`getWeather`,其主要功能是从Google服务器获取指定城市的天气预报数据,并将这些数据保存为本地XML文件,最后解析该文件并返回天气情况。 #### 方法参数与返回值 - `cityName`: 指定城市名称。 - `...
4. 替代方案:对于大文件,可考虑SAX(Simple API for XML)或StAX(Streaming API for XML)解析,它们基于事件驱动,按需读取XML,减少了内存占用。 总结,Android版本更新是保证应用质量和用户体验的重要步骤,...
2. **XML解析**:XML文档由元素、属性、文本等构成,解析XML时,我们需要读取这些元素并将其转换为内存中的数据结构。Python中可以使用`xml.etree.ElementTree`库进行解析,Java中可使用DOM或SAX解析器。 3. **XML...
1. **XML解析**:在本例中,XML文件(如`BeMap.xml`)可能包含了箭头的位置和方向信息。XML是一种结构化数据格式,用于存储和传输数据。使用JavaScript中的DOM(Document Object Model)API,可以解析XML文件并提取...
SAX解析器是一种事件驱动的解析方式,它逐行读取XML文档,遇到特定的元素开始、结束或有属性时触发回调函数。这种方式相较于DOM解析器,内存占用较低,适合处理大体积的XML文档。 要开始解析Google天气预报的XML,...
本Java工具包聚焦于四个核心功能:JavaMail的封装、Google在线翻译的集成、文件I/O操作的封装以及DOM4J对XML的处理。以下将详细阐述这些知识点。 1. **JavaMail**:JavaMail是Java平台上的一个开源库,用于处理电子...
而SAX是事件驱动的,逐行读取XML,适用于大文件,内存占用少,但不支持随机访问。 2. **JAXB(Java Architecture for XML Binding)**:在Java中,JAXB是一个标准API,它提供了将XML文档与Java对象之间自动转换的...