Witam,
chciałbym parsowac tego xmla http://www.google.pl/ig/api?hl=pl&weather=lodz,
probowałem bezpośrednio z linku w ten sposob
String link="http://www.google.pl/ig/api?hl=pl&weather=lodz";
URI cos = new URI(link);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(link);
niestety mam taki błąd:
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.scanLiteral(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanAttribute(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at TestParse.(TestParse.java:72)
at TestParse.main(TestParse.java:118)
Jeżeli zapisze plik przez przeglądarkę i parsuje z pliku to działa bezbłędnie. Więc próbowałem zczytać stronę do pliku:
URL link = new URL("http://www.google.pl/ig/api?hl=pl&weather=lodz");
String source = "";
BufferedReader in = new BufferedReader(new InputStreamReader(link.openStream(),"UTF-8"));
String linia;
while ((linia = in.readLine()) != null)
{
source += linia+"\n";
}
in.close();
FileWriter fw = new FileWriter("a.xml");
fw.write(source);
fw.close();
i wszystko działa oprócz polskich znaków zamiast np Łódź mam " ? ?d? ", rozumiem że problem tkwi w kodowaniu ale nie mogę sobie z tym poradzić.
Znacie może jakieś inne xml które mogłbym wykorzystać?
pozdrawiam