Ну, я использовал другой подход, и я надеюсь, что он может быть полезен для тех, кто ищет этот ответ.
Я использовал карту для хранения всех данных.
NodeList nodes = doc.getElementsByTagName(TAG_ITEM_NEWS);
for (int i = 0; i < nodes.getLength(); i++)
{
final HashMap<String, String> map = new HashMap<String, String>();
Element e = (Element)nodes.item(i);
// ENCLOSURE:
final NamedNodeMap e_attr = Read_XML.getElementAttributes(e,TAG_ENCLOSURE_NEWS);
map.put(TAG_ENCLOSURE_URL_NEWS, Read_XML.getSingleAttribute(e_attr,TAG_ENCLOSURE_URL_NEWS));
map.put(TAG_ENCLOSURE_TYPE_NEWS, Read_XML.getSingleAttribute(e_attr,TAG_ENCLOSURE_TYPE_NEWS));
map.put(TAG_ENCLOSURE_LENGTH_NEWS, Read_XML.getSingleAttribute(e_attr,TAG_ENCLOSURE_LENGTH_NEWS));
// GUID:
final NamedNodeMap g_attr = Read_XML.getElementAttributes(e,TAG_GUID_NEWS);
map.put(TAG_GUID_ISPERMALINK_NEWS, Read_XML.getSingleAttribute(g_attr,TAG_GUID_ISPERMALINK_NEWS));
// ALL THE OTHERS:
map.put(TAG_TITLE_NEWS, Leggi_XML.getValue(e, TAG_TITLE_NEWS));
map.put(TAG_LINK_NEWS, Leggi_XML.getValue(e, TAG_LINK_NEWS));
map.put(TAG_DESCRIPTION_NEWS, Leggi_XML.getValue(e, TAG_DESCRIPTION_NEWS));
map.put(TAG_DATE_NEWS, Leggi_XML.getValue(e, TAG_DATE_NEWS));
list_news.add(map);
}
Теперь основные методы извлечения атрибутов:
public final static NamedNodeMap getElementAttributes( Element elem, String str ) {
NamedNodeMap attrs;
if( elem != null){
if (elem.getElementsByTagName(str)!=null) {
Node enclosure = elem.getElementsByTagName(str).item(0);
attrs = enclosure.getAttributes();
return attrs;
}
}
return null;
}
И
public final static String getSingleAttribute( NamedNodeMap attrs, String str ) {
if (attrs!=null) {
Node node = attrs.getNamedItem(str);
String attribute = null;
if (node != null) {
attribute = node.getNodeValue();
return attribute;
}
}
return "";
}
Теги определены в другом месте как: public static final String TAG_ENCLOSURE_NEWS = "enclosure";