2013-02-15 63 views
3

如何解析器採用了DOM PARSER如何使用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> 

我想要得到的BookAuthorBookRatingBookDescriptionDatePublishedBookTitleBookIDBookCodeBookImageTotalPages

值以下XML解析XML

我該怎麼做。我試圖分析上面的XML選擇All_BookDetails父節點,但nodelist返回我的0長度

感謝

+2

http://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/。你可以開始的地方。 – Raghunandan 2013-02-15 07:11:37

+0

在哪個設備及其API級別?我聞到它只是我面臨的同樣的問題,看看[這裏](http://stackoverflow.com/questions/14870304/failed-to-fetch-xml-data-from-res-in-android-3-0 - 以上) – RobinHood 2013-02-15 07:12:40

+0

請顯示您嘗試過的一些代碼 – 2013-02-15 07:13:21

回答

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");