`

dom4j读取 XML_1(google天气为例)

 
阅读更多

本来是想用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

    标题中的"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-1.6.1-API+源代码-中文版.rar

    DOM4J是一个非常优秀的Java XML API,它提供了全面而强大的XML处理功能,包括读取、创建、修改和查询XML文档。这个压缩包“dom4j-1.6.1-API+源代码-中文版.rar”包含了DOM4J 1.6.1版本的中文API文档和带有中文注释的...

    dom4j-json-Gson完整jar包

    DOM4J的核心特性包括创建、修改和读取XML文档,以及强大的文档遍历和搜索能力。在项目中,DOM4J经常用于解析XML配置文件或从XML数据中提取信息。 Gson是Google提供的一个开源库,它允许Java对象和JSON数据之间进行...

    google.rar_Google api_Search Engine_create XML_c语言 xml_google

    在本项目中,我们需要一个**XML解析器** 来读取和处理Google Search API返回的数据。C语言中有许多开源的XML解析库可供选择,比如TinyXML、libxml2等。XML解析器的工作包括解析XML文档、创建DOM树(Document Object ...

    JSP XML实现谷歌天气预报

    最后,要注意的是,虽然本项目以谷歌天气预报为例,但其实现方法适用于任何提供XML数据的在线服务。通过这个项目,你可以提升对JSP、XML以及API调用的理解,并能将其应用到其他类似的情景中。 总结一下,JSP XML...

    google天气预报XML-Pull解析版(完全解析)

    XML-Pull解析器在读取XML文档时,只处理当前的事件,这样可以节省内存,尤其适合处理大型XML文件。在Android开发中,XML-Pull解析常用于网络数据的解析,因为它高效且内存友好。 首先,我们需要了解如何使用XML-...

    Google Maps API 应用;读取xml文件,实现轨迹回放

    读取xml文件,实现轨迹回放”探讨了如何利用API来读取XML文件,进而实现车辆轨迹的动态回放功能。这个功能在物流、交通管理和地理信息系统(GIS)等领域有着重要的应用。 首先,我们要理解Google Maps API的基本...

    XML_xiliehua.zip

    - 解析示例可能演示如何读取XML文件,然后使用DOM、SAX或Pull解析器来提取数据。 5. **最佳实践**: - 在序列化和反序列化时,注意处理异常,确保数据的完整性和一致性。 - 对于大型XML文件,优先考虑SAX或Pull...

    c++ xml读取操作库

    在C++中,使用动态链接库进行XML读取,需要先将XML库编译为DLL,然后在应用中通过函数调用来实现XML处理。例如,TinyXML库可以被编译成DLL,程序中通过`#import`或`LoadLibrary/GetProcAddress`等方式调用库函数。 ...

    JS读取本地XML(支持IE和火狐和Google和Opea)

    虽然`XMLHttpRequest`通常用于与服务器进行异步通信,但在某些情况下,如在本地环境中,也可以通过创建一个`file:`协议的URL来读取XML文件。不过,这种方式在现代浏览器中由于同源策略限制,已经被废弃,且不支持...

    android基于xml的天气解析

    其中,SAX解析器是一种事件驱动的解析器,它读取XML文档并触发一系列的事件,例如开始元素、结束元素、字符数据等,这使得SAX解析器在处理大型XML文档时比DOM更节省内存。 以下是使用SAX解析XML天气数据的基本步骤...

    Android xml文件读取库

    2. SAX解析器:与DOM不同,SAX采用事件驱动模型,逐行读取XML文件,遇到元素、属性等时触发相应的回调函数。这种方式适用于处理大文件,因为它不需要一次性加载整个XML。然而,SAX解析器需要开发者手动编写回调函数...

    goole的xml解析库

    XML解析器的主要任务是读取XML文档,并将其转换成可操作的数据结构,如对象模型,使开发人员可以方便地访问和处理XML数据。Google的XML解析库可能采用了两种解析策略:DOM(Document Object Model)和SAX(Simple ...

    获取Google的简单天气预报

    该方法名为`getWeather`,其主要功能是从Google服务器获取指定城市的天气预报数据,并将这些数据保存为本地XML文件,最后解析该文件并返回天气情况。 #### 方法参数与返回值 - `cityName`: 指定城市名称。 - `...

    android版本更新与dom解析xml

    4. 替代方案:对于大文件,可考虑SAX(Simple API for XML)或StAX(Streaming API for XML)解析,它们基于事件驱动,按需读取XML,减少了内存占用。 总结,Android版本更新是保证应用质量和用户体验的重要步骤,...

    PB 解析xml格式串

    2. **XML解析**:XML文档由元素、属性、文本等构成,解析XML时,我们需要读取这些元素并将其转换为内存中的数据结构。Python中可以使用`xml.etree.ElementTree`库进行解析,Java中可使用DOM或SAX解析器。 3. **XML...

    google maps api (读取png,jpg,xml)画箭形(初学必看)

    1. **XML解析**:在本例中,XML文件(如`BeMap.xml`)可能包含了箭头的位置和方向信息。XML是一种结构化数据格式,用于存储和传输数据。使用JavaScript中的DOM(Document Object Model)API,可以解析XML文件并提取...

    android的对google天气预报的Sax解析

    SAX解析器是一种事件驱动的解析方式,它逐行读取XML文档,遇到特定的元素开始、结束或有属性时触发回调函数。这种方式相较于DOM解析器,内存占用较低,适合处理大体积的XML文档。 要开始解析Google天气预报的XML,...

    java工具包封装对xml的操作javamail,翻译,io操作

    本Java工具包聚焦于四个核心功能:JavaMail的封装、Google在线翻译的集成、文件I/O操作的封装以及DOM4J对XML的处理。以下将详细阐述这些知识点。 1. **JavaMail**:JavaMail是Java平台上的一个开源库,用于处理电子...

    XML动态转化为ObjectDemo

    而SAX是事件驱动的,逐行读取XML,适用于大文件,内存占用少,但不支持随机访问。 2. **JAXB(Java Architecture for XML Binding)**:在Java中,JAXB是一个标准API,它提供了将XML文档与Java对象之间自动转换的...

Global site tag (gtag.js) - Google Analytics