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); doc = dombuilder.parse(inputSource);
} 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)
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); doc = dombuilder.parse(inputSource);
} 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)
import java.io.BufferedInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
public class Test {
public static void main(String[] args) throws Exception{
String uri="http://www.p5w.net/stock/hydx/bkfx/index_160.xml";
String encoding="gb2312";
URL url = new URL(uri);
System.getProperties().setProperty("http.proxyHost", "172.28.88.2");
System.getProperties().setProperty("http.proxyPort", "80");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.connect();
InputStream in = new BufferedInputStream(conn.getInputStream());
InputStreamReader isr = new InputStreamReader(in,encoding);
int str=-1;
StringBuffer sb=new StringBuffer();
while((str=isr.read())!=-1)
sb.append((char)str);
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
isr.close();
Document doc=db.parse(new InputSource(new StringReader(sb.toString())));
//这生成一个doc类型
}
}//注意你读取的时候应该用gb2312,那个xml是gb2312的编码格式
但是出现新问题:
[Fatal Error] :-1:-1: Premature end of file.
org.xml.sax.SAXParseException: Premature end of file.
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:120)
at com.util.XML.main(XML.java:130)