기본적으로 DOM Parser를 사용하여 목록보기의 RSS 피드에서 제목, 설명, pubDate 및 축소판을 검색합니다. 여기 내 샘플 코드입니다. 처음 세 태그 썸네일이 나에게 문제를주고, 나에게 예외가 발생되어 내 parser..But 제대로 읽어스트림을 디코딩 할 수 없습니다 : fileNotFoundException
public ArrayList<HashMap<String, String>> processXML(
InputStream inputStream) throws Exception {
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory
.newDocumentBuilder();
Document xmlDocument = documentBuilder.parse(inputStream);
Element rootElement = xmlDocument.getDocumentElement();
L.m("" + rootElement.getTagName());
NodeList itemsList = rootElement.getElementsByTagName("item");
NodeList itemChildren = null;
Node currentItem = null;
Node currentChild = null;
NamedNodeMap mediaThumbnailAttr = null;
Node currentAttribute=null;
int count = 0;
ArrayList<HashMap<String, String>> results = new ArrayList<>();
HashMap<String, String> currentMap = null;
for (int i = 0; i < itemsList.getLength(); i++) {
currentItem = itemsList.item(i);
itemChildren = currentItem.getChildNodes();
currentMap = new HashMap<>();
for (int j = 0; j < itemChildren.getLength(); j++) {
currentChild = itemChildren.item(j);
if (currentChild.getNodeName().equalsIgnoreCase("title")) {
// L.m(currentChild.getTextContent());
currentMap.put("title", currentChild.getTextContent());
}
if (currentChild.getNodeName().equalsIgnoreCase("pubDate")) {
// L.m(currentChild.getTextContent());
currentMap
.put("pubDate", currentChild.getTextContent());
}
if (currentChild.getNodeName().equalsIgnoreCase(
"description")) {
// L.m(currentChild.getTextContent());
currentMap.put("description",
currentChild.getTextContent());
}
if(currentChild.getNodeName().equalsIgnoreCase("media:thumbnail")){
//L.m(""+currentChild.getTextContent());
mediaThumbnailAttr = currentChild.getAttributes();
for(int k=0;k<mediaThumbnailAttr.getLength();
k++){
currentAttribute = mediaThumbnailAttr.item(k);
if(currentAttribute.getNodeName()
.equalsIgnoreCase("url")){
count++;
//L.m(currentChild.getAttributes().item(0).getTextContent());
}
//L.m();
currentMap.put("imageURL", currentChild
.getAttributes().item(0).getTextContent());
}
count=0;
}
}
if (currentMap != null && !currentMap.isEmpty()) {
results.add(currentMap);
}
count = 0;
}
return results;
}
}
}
...
Unable to decode stream: java.io.FileNotFoundException:
/http:/i.dailymail.co.uk/i/pix/2014/09/27/1411832985119_Puff_Image_galleryImage_SUNDERLAND_ENGLAND_SEPTEM.JPG: open failed: ENOENT (No such file or directory).
은 setImageURI에 문제가 있습니까 (Uri.parse (currentItem.get ("imageURL"))));
내가 알 수있는 한 가지 : URL 시작 부분에 "/"가 추가되었습니다. 'http://i.dailymail.co.uk/i/pix/2014/09/27/1411832985119_Puff_Image_galleryImage_SUNDERLAND_ENGLAND_SEPTEM.JPG'여야합니다. "/http://i.dailymail.co.uk/i/pix/2014/09/27/1411832985119_Puff_Image_galleryImage_SUNDERLAND_ENGLAND_SEPTEM.JPG" –
알아. holder.articleImage.setImageURI (Uri.parse (currentItem.get ("imageURL"))); 내 어댑터의 getView 메서드 내부에 예외가 표시되지 않지만 다시 이미지가 목록에 표시되지 않습니다 .. – Theo
맞다.하지만 잘못된 URL이 표시됩니다. 그것을 확인하십시오. 테스트 목적으로 하드 코딩 된 URL을 시도해 볼 수 있습니다 :'holder.articleImage.setImageURI (Uri.parse ("http : /i.dailymail.co.uk/i/pix/2014/09/27/1411832985119_Puff_Image_galleryImage_SUNDERLAND_ENGLAND_SEPTEM.JPG")) ; 그리고 이미지가 표시되는지 확인하십시오. @ 테오 –