@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) {
elementOn = true;
if (localName.equals("DEAL")) {
discount = new Discount();
}
}
@Override
public void endElement(String uri, String localName, String qName){
elementOn = false;
if(localName.equalsIgnoreCase("IMAGE")) {
discount.setImage(elementValue);
} else if(localName.equalsIgnoreCase("DEAL")) {
arrayDiscount.add(discount);
}
}
@Override
public void characters(char[] ch, int start, int length){
if (elementOn) {
elementValue = new String(ch, start, length);
elementOn = false;
}
}
, а затем вход выглядит (я вставить только несколько строк, существует также много линий до и после того, как многие, объекты», содержащие изображения, цены и другие теги)Сакс синтаксический анализатор не полный текст, никаких недозволенных или амперсанд символов
<IMAGE>http://www.url.com/1815/e0deb0bcca75704ef974d017028563f401386541247.jpg</IMAGE>
<FINAL_PRICE>24.9</FINAL_PRICE>
<ORIGINAL_PRICE>49</ORIGINAL_PRICE>
, когда я затем положить на консоль вывод из массивов скидок и получить URL изображения, это дает мне иногда только части этой строки, как
http://www.url.com/1815/e0deb0bcc
это произошло только в длинном тексте между открытым и вмещающими тегами Здесь также подключениями SAXParser
SAXParserFactory saxPF = SAXParserFactory.newInstance();
SAXParser saxP = saxPF.newSAXParser();
XMLReader xmlR = saxP.getXMLReader();
URL url = new URL("http://www.url.com/output.xml");
XMLHandler myXMLHandler = new XMLHandler();
xmlR.setContentHandler(myXMLHandler);
xmlR.parse(new InputSource(url.openStream()));
Im с помощью парсера SAX, потому что это fastes из родных классов Android.
Спасибо