我对编码有问题。首先,可能需要编写一些代码:
URL xmlUrl = new URL("http://helion.pl/rss/GW/promocje.rss");
SAXParserFactory saxFactory = SAXParserFactory.newInstance();
SAXParser parser = saxFactory.newSAXParser();
XMLReader reader = parser.getXMLReader();
Helion xmlHandler = new Helion();
reader.setContentHandler(xmlHandler);
InputSource inputSource = new InputSource(xmlUrl.openStream());
inputSource.setEncoding("ISO-8859-1");
reader.parse(inputSource);该文件编码为ISO-8859-2,但是当我使用setEncoding("ISO-8859-2")文件时,无法读取该文件。请帮帮忙。
DefaultHandler:
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
currentTagName = qName;
if (TAG_ITEM.equalsIgnoreCase(qName)) {
odczyt = true;
element = new Element();
}
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
String value = new String(ch, start, length);
if (!value.trim().equals("")) {
if (odczyt) {
if (TAG_TYTOL.equalsIgnoreCase(currentTagName)) {
element.setTytol(value);
} else if (TAG_OPIS.equalsIgnoreCase(currentTagName)) {
element.setOpis(value);
}
}
}
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
if (TAG_ITEM.equalsIgnoreCase(localName)) {
odczyt = false;
elementy.add(element);
}
}
}发布于 2012-01-03 02:14:08
正如Francis Upton提到的,在一个XML start/end元素中可以多次调用字符。你应该这样做:
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
String s = new String(ch, start, length);
if (mTextBuffer == null) {
mTextBuffer = new StringBuffer(s);
} else {
mTextBuffer.append(s);
}
}然后在endElement方法中调用element.setTytol(mTextBuffer)/element.setOpis(mTextBuffer)
发布于 2012-01-03 01:34:17
在您的代码中,您将其设置为ISO-8859-1,这是非常不同的,这会是问题所在吗?
https://stackoverflow.com/questions/8703567
复制相似问题