1

Blackberry java用のRssParserを開発し、Rss xmlファイルからタイトルを正常に解析しましたが、Rssからのimageurlも解析する必要があります。

しかし、私のコードは個々のタグに対して正常に機能しています。実際の要件はdrawlistメソッドにあります。Rssから画像のURLとタイトルタグの両方の値を取得するにはどうすればよいですか?

これが私のコードです:

public void run() {  
            Document doc;  
            StreamConnection conn = null; 
            InputStream is = null;  
            try {           

                conn = (StreamConnection) Connector.open("Rss.xml"+";deviceside=true");             

                DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();  
                docBuilderFactory.setIgnoringElementContentWhitespace(true);
                docBuilderFactory.setCoalescing(true);
                DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();    
                docBuilder.isValidating();      
                is = conn.openInputStream();    
                doc = docBuilder.parse(is);     
                doc.getDocumentElement().normalize();   


                   NodeList list = doc.getElementsByTagName("image"); 

                NodeList list = doc.getElementsByTagName("title"); 
                    for (int a = 0; a < list.getLength(); a++) {    
                    Node textNode1 = list.item(a).getFirstChild();  
                    listElements.addElement(textNode.getNodeValue());
                        }





public void drawListRow(ListField list, Graphics g, int index, int y, int w) 
    {  
         String title = (String)listElements.elementAt(index);


        g.drawText(title, 5, 15+y, 0, w);
    }
4

1 に答える 1

3

2 つの「NodeList リスト」変数があるため、コード スニペットはコンパイルされませんが、別のリストで画像の URL を取得したと仮定します。画像データを取得する必要がある URL ごとに、Image オブジェクトを開始し、後で描画するために保存します。

public void run() {
    NodeList list = doc.getElementsByTagName("image");

    for (int a = 0; a < list.getLength(); a++) {
        Node textNode1 = list.item(a).getFirstChild();

        imageElements.addElement(getImage(textNode.getNodeValue()));
    }
}

// variation of the same method found at
// http://stackoverflow.com/questions/4883600/how-do-i-get-to-load-image-in-j2me
private Image getImage(String url) throws IOException {
    HttpConnection connection = null;
    DataInputStream inp = null;
    int length;
    byte[] data;
    try {
        connection = (HttpConnection) Connector.open(url);
        connection.getResponseMessage();
        length = (int) connection.getLength();
        data = new byte[length];
        inp = new DataInputStream(connection.openInputStream());
        inp.readFully(data);

        return Image.createImage(data, 0, data.length);
    } finally {
        if (connection != null)
            connection.close();
        if (inp != null)
            inp.close();

    }
}

public void drawListRow(Graphics g, int index, int y, int w) {  
    String title = (String) listElements.elementAt(index);
    Image image = (Image) imageElements.elementAt(index);

    g.drawText(title, 5, 15+y, 0, w);
    // As I do not have experience with Blackberry I assume below method exists
    g.drawImage(image, 5, y, 0, w);
}
于 2012-09-11T11:34:46.063 に答える