android - 如何使用 DOM 解析器解析 XML

标签 android parsing dom xml-parsing

如何使用 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>

我想获取 BookAuthorBookRatingBookDescriptionDatePublishedBookTitle 的值BookIDBookCodeBookImage 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/

相关文章:

javascript - 使用 HTML JS 在 Android WebView 中打开相机?

java - Jsoup 将 Element 转换为 TextNode 会导致异常

c# - 使用抽象语法树生成曲线

dom - Google Chrome 扩展 - 访问 DOM

html - CSS- :last-child that has "xyz" class name selector? 纯 CSS/LESS

android - 如何计算通知数量并在Android中显示单个图标?

Android 哈希 key - 无法与 Facebook 连接

当android在后台服务中进入休眠状态时,Android HttpPost套接字超时

c++ - 如何在不跳过 eol 的情况下使用 skipper ascii::space?

javascript - 未捕获的类型错误 : Cannot set property 'src' of undefined