2013-02-15 5 views
3

как парсера следующий XML с помощью DOM PARSERКак разобрать XML с помощью DOM парсер

<Result> 
<Status>OK</Status> 
<All_BookDetails> 
<BookAuthor>Mohammadi Reyshahri</BookAuthor> 
<BookRating>0</BookRating> 
<BookDescription>Islamic belief and ideology</BookDescription> 
<DatePublished>May 1 1992 12:00AM</DatePublished> 
<BookTitle>Are You Free or Slave</BookTitle> 
<BookID>171</BookID> 
<BookCode>EN171</BookCode> 
<BookImage>1.jpg</BookImage> 
<TotalPages>164</TotalPages> 
</All_BookDetails> 
</Result> 

я хочу, чтобы получить значения BookAuthor, BookRating, BookDescription, DatePublished, BookTitle, BookID, BookCode, BookImageTotalPages

как я могу это сделать. Я пытался разобрать выше XML выбирающий All_BookDetails как родительский узел, но nodelist возвращающегося меня 0 в длину

Thanks

+2

http://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/. Место, где вы можете начать. – Raghunandan

+0

в каком устройстве и его уровне API? Я чувствую его как ту же проблему, с которой сталкиваюсь, посмотрите [здесь] (http://stackoverflow.com/questions/14870304/failed-to-fetch-xml-data-from-res-in-android-3-0 -and-above) – RobinHood

+0

Пожалуйста, покажите код, который вы пробовали –

ответ

3

Приступаем к XML DOM элемент

public Document getDomElement(String xml) { 
    Document doc = null; 
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 

    dbf.setCoalescing(true); 
    try { 

     DocumentBuilder db = dbf.newDocumentBuilder(); 

     InputSource is = new InputSource(); 
     is.setCharacterStream(new StringReader(xml)); 
     doc = db.parse(is); 

    } catch (ParserConfigurationException e) { 
     return null; 
    } catch (SAXException e) { 
     return null; 
    } catch (IOException e) { 
     return null; 
    } 

    return doc; 

} 

тогда я попробовал это и его работал

Document doc = parser.getDomElement(XMLString); 
      NodeList nl = doc.getElementsByTagName("All_BookDetails"); 

      progressDialog.setCancelable(true); 
      Element e = (Element) nl.item(0); 
      BookRating = (Integer.valueOf(parser.getValue(e, 
         "BookAuthor"))); 

      BookTitle = parser.getValue(e, "BookTitle"); 
      BookAuthor = parser.getValue(e, "BookAuthor"); 
      BookPublishDate = parser.getValue(e, "DatePublished"); 
      BookDescription = parser.getValue(e, "BookDescription"); 
      bookID = parser.getValue(e, "BookID"); 
      bookCode = parser.getValue(e, "BookID"); 
      bookPageCount = parser.getValue(e, "TotalPages"); 
Смежные вопросы