如何在 BlackBerry 中使用 DefaultHandler 类

发布于 2024-10-10 12:38:20 字数 201 浏览 3 评论 0原文

在 BlackBerry 应用程序中,我使用 SAX 解析器来解析我的 XML。我知道如何使用 ContentHandler 接口进行 SAX 解析。但我想使用 DefaultHandler 类来解析我的 XML 这样我就可以只提供我需要的那些方法的定义。 任何人都可以给我提供一份示例代码,说明我如何使用 DefaultHandler 在 BlackBerry 中进行 SAX 解析的类

In BlackBerry application I am using SAX parser to parse my XML.I know how to do SAX parsing using ContentHandler interface.But i want to parse my XML by using the DefaultHandler class
so that i can provide definitions of only those methods that i require.
can any one please provide me a sample code as how can i use the DefaultHandler
class to do SAX parsing in BlackBerry

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

骄兵必败 2024-10-17 12:38:20

对于 xml 之类的

<items>
<item>
  <title>title content </title>
   ..
</item>
...
</items>



class XMLRSSHandler extends DefaultHandler {

    static final String TITLE = "title";
    static final String ITEM = "item";

    boolean isItem = false;
    boolean isTitle = false;
    Vector items = new Vector();
    String value = "";

    private Item currentItem = null;

    public XMLRSSHandler() {
    }

    public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException {
        if (name.equalsIgnoreCase(ITEM)) {
           currentItem = new Item();
        } else if (currentItem != null) {
            if (name.equalsIgnoreCase(TITLE)) {
                isTitle = true;
            }
        }
    }

    public void characters(char[] ch, int start, int length) throws SAXException {
        if (isTitle) {
            value = new String(ch, start, length).trim();
        }
    }

    public void endElement(String uri, String localName, String name) throws SAXException {
        if (isTitle && name.equalsIgnoreCase(TITLE)) {
            isTitle = false;
            currentItem.setTitle(value);
            return;
        }
        if (currentAItem != null
                && (name.equalsIgnoreCase(ITEM)) {
            Logger.debug("Loaded Item " + currentItem.getTitle());
            items.addElement(currentArticle);
            currentItem= null;
        }
    }
}

for xml like

<items>
<item>
  <title>title content </title>
   ..
</item>
...
</items>



class XMLRSSHandler extends DefaultHandler {

    static final String TITLE = "title";
    static final String ITEM = "item";

    boolean isItem = false;
    boolean isTitle = false;
    Vector items = new Vector();
    String value = "";

    private Item currentItem = null;

    public XMLRSSHandler() {
    }

    public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException {
        if (name.equalsIgnoreCase(ITEM)) {
           currentItem = new Item();
        } else if (currentItem != null) {
            if (name.equalsIgnoreCase(TITLE)) {
                isTitle = true;
            }
        }
    }

    public void characters(char[] ch, int start, int length) throws SAXException {
        if (isTitle) {
            value = new String(ch, start, length).trim();
        }
    }

    public void endElement(String uri, String localName, String name) throws SAXException {
        if (isTitle && name.equalsIgnoreCase(TITLE)) {
            isTitle = false;
            currentItem.setTitle(value);
            return;
        }
        if (currentAItem != null
                && (name.equalsIgnoreCase(ITEM)) {
            Logger.debug("Loaded Item " + currentItem.getTitle());
            items.addElement(currentArticle);
            currentItem= null;
        }
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文