从BlackBerry的xml文件中删除标签

时间:2011-07-21 03:23:06

标签: xml parsing blackberry sax atom-feed

我正在开发一个需要从xml文件中读取的BlackBerry应用程序。我能够阅读它,但我想删除<?xml version='1.0' encoding='UTF-8'?><feed><author>等标记,等等......

我正在使用BlackBerry 9800 Simulator。

检查过我的文件是Atom 1.0文件。那么我应该如何删除这些标签?

目前我的代码来自于我从互联网上获得的代码。但它只显示文件的“id”和“updated”日期。如何显示/过滤某些数据并删除标签?

谢谢, HEND

 class MyApp extends UiApplication{
//creating a member variable for the MainScreen
MainScreen _screen= new MainScreen();
//string variables to store the values of the XML document
String _node,_element;
Connection _connectionthread;

public static void main(String arg[]){
    MyApp application = new MyApp();
    //create a new instance of the application
    //and start the application on the event thread
    application.enterEventDispatcher();
}

public MyApp() {
    _screen.setTitle("XML Parsing");//setting title
    _screen.add(new RichTextField("Requesting....."));
    _screen.add(new SeparatorField());
    pushScreen(_screen); // creating a screen
    //creating a connection thread to run in the background
    _connectionthread = new Connection();
    _connectionthread.start();//starting the thread operation
}

public void updateField(String node, String element) 
{    
    synchronized (UiApplication.getEventLock()) 
    {
        String title = "My App";
        _screen.add(new RichTextField(node + " : " + element));
        if (node.equals(title))
        {
            _screen.add(new SeparatorField());
            }
        }
    } 


private class Connection extends Thread{
    public Connection(){
        super();
    }

    public void run(){
        // define variables later used for parsing

        Document doc;
        StreamConnection conn;

        try{
            //providing the location of the XML file,
            //your address might be different
            conn=(StreamConnection)Connector.open
              ("http://www.google.com");
            //next few lines creates variables to open a
            //stream, parse it, collect XML data and
            //extract the data which is required.
            //In this case they are elements,
            //node and the values of an element
            DocumentBuilderFactory docBuilderFactory
              = DocumentBuilderFactory. newInstance(); 
            DocumentBuilder docBuilder
              = docBuilderFactory.newDocumentBuilder();

            docBuilder.isValidating();
            doc = docBuilder.parse(conn.openInputStream());
            doc.getDocumentElement ().normalize ();
            NodeList list=doc.getElementsByTagName("*");
            _node=new String();
            _element = new String();
            //this "for" loop is used to parse through the
            //XML document and extract all elements and their
            //value, so they can be displayed on the device

            for (int i=0;i<list.getLength();i++){
                Node value=list.item(i).
                  getChildNodes().item(0);
                _node=list.item(i).getNodeName();
                _element=value.getNodeValue();
                updateField(_node,_element);
            }//end for
        }//end try
        //will catch any exception thrown by the XML parser
        catch (Exception e){
            System.out.println(e.toString());

        }
      }//end connection function
  }// end connection class
}//end XML_Parsing_Sample

1 个答案:

答案 0 :(得分:0)

创建另一个执行相同run()但搜索另一个tagName的方法。这允许读取和显示多个标签的信息。