public class XML {
public Document getDoc(String u, String encoding) {
Document doc = null;
try {
URL url = new URL(u);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.connect();
DocumentBuilder dombuilder = builderFactory.newDocumentBuilder();
InputStream in = new BufferedInputStream(conn.getInputStream());
InputStreamReader isr = new InputStreamReader(in,encoding);
InputSource inputSource = new InputSource(isr);
[color=darkred]doc = dombuilder.parse(inputSource);[/color]
} catch (Exception e) {
e.printStackTrace();
}
return doc;
}
public static void main(String[] args) {
XML x=new XML();
String u = "http://www.p5w.net/stock/hydx/bkfx/index_160.xml";
x.getDoc(u,"utf-8");
}
}
出如下异常 一直无法解决 高手帮下忙 谢谢了
[Fatal Error] :206:35: An invalid XML character (Unicode: 0xdf2f) was found in the element content of the document.
org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0xdf2f) was found in the element content of the document.
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at com.util.XML.getDoc(XML.java:117)(红色部分)
at com.util.XML.main(XML.java:134)
如果你确定那个XML 能正常解析的话!
[code="java"]InputStreamReader isr = new InputStreamReader(in,encoding); [/code]
其他的编码试了么?
An invalid XML character (Unicode: 0xdf2f) was found in the element content of the document.
你解析的XML 里面有特殊字符! 无法解析!
我们以前写接口的时候也碰到过 类似的!
[code="java"]SAXReader reader = new SAXReader(); //解析XML
StringReader sr = new StringReader(xmlbody);
Document doc = null;
doc = reader.read(sr,"UTF-8");[/code]
设定个字符编码就可以了! 我用的是dom4j 其他的话也可以类似的方法!试试吧!
[code="xml"]<?xml version="1.0" encoding="gb2312"?>
[/code]
注意xml原文,其用的是gb2312编码,你将系统中
InputStreamReader isr = new InputStreamReader(in,encoding);
改为gb2312就OK了