如何使用 DOM PARSER
解析以下 XML
<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
,BookImage
TotalPages
我该怎么做。我试图解析上面的 XML,选择 All_BookDetails
作为父节点,但 nodelist
返回长度为 0
谢谢
最佳答案
获取 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");
关于android - 如何使用 DOM 解析器解析 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14889786/