2

私はこれを解析しようとしています:

これは私が読みたいxmlファイルです

解析すると、次のようになります。

タイトル = ワークショップ メトロポリス 説明 = ワークショップ メトロポリス groot 成功 Vlak voor de... 続きを読む

続きを読むは、説明にテキストがありません。上記の xml のタグはどれですか? なぜそれが来るのか理解できません。

コードは次のとおりです。

///********************** XMLParsingExample.java **********************//

public class XMLParsingExample extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    try {

        /** Handling XML */
        SAXParserFactory spf = SAXParserFactory.newInstance();
        SAXParser sp = spf.newSAXParser();
        XMLReader xr = sp.getXMLReader();

// /** XML タグを解析するために URL を送信します */

        URL sourceUrl = new URL("http://192.168.0.30/ibis.rss");

        /** Create handler to handle XML Tags ( extends DefaultHandler ) */
        MyXMLHandler myXMLHandler = new MyXMLHandler();
        xr.setContentHandler(myXMLHandler);

        xr.parse(new InputSource(sourceUrl.openStream()));


    } catch (Exception e) {
        System.out.println("XML Pasing Excpetion = " + e);
    }

    /** Get result from MyXMLHandler SitlesList Object */
    sitesList = MyXMLHandler.sitesList;
    for (int i = 0; i < sitesList.getLat().size(); i++) {
        System.out.println("title = "+ sitesList.getLat().get(i).toString());
        System.out.println("description = "+ sitesList.getLong().get(i).toString());
    }

}

}


////MyXMLHandler


public class MyXMLHandler extends DefaultHandler {

Boolean currentElement = false;
String currentValue = null;
public static SitesList sitesList = null;

public static SitesList getSitesList() {
    return sitesList;
}

public static void setSitesList(SitesList sitesList) {
    MyXMLHandler.sitesList = sitesList;
}

/** Called when tag starts ( ex:- <name>AndroidPeople</name> 
 * -- <name> )*/
@Override
public void startElement(String uri, String localName, String qName,
        Attributes attributes) throws SAXException {

    currentElement = true;

    if (localName.equals("channel"))
    {
        /** Start */ 
        sitesList = new SitesList();
    }
}

/** Called when tag closing ( ex:- <name>AndroidPeople</name> 
 * -- </name> )*/
@Override
public void endElement(String uri, String localName, String qName)
        throws SAXException {

    currentElement = false;

    /** set value */ 
    if (localName.equalsIgnoreCase("title"))
        sitesList.setLat(currentValue);
    else if (localName.equalsIgnoreCase("description"))
        sitesList.setLong(currentValue);
}

/** Called to get tag characters ( ex:- <name>AndroidPeople</name> 
 * -- to get AndroidPeople Character ) */
@Override
public void characters(char[] ch, int start, int length)
        throws SAXException {

    if (currentElement) {
        //currentValue = StringEscapeUtils.unescapeHtml4(new String(ch, start, length).trim()); //new String(ch, start, length).trim()
        currentValue = new String(ch, start, length);
        currentElement = false;
    }

}

}


public class SitesList {

/** Variables */
private ArrayList<String> mlat = new ArrayList<String>();
private ArrayList<String> mlong = new ArrayList<String>();
private ArrayList<String> mradiuslat = new ArrayList<String>();
private ArrayList<String> mradiuslong = new ArrayList<String>();
private ArrayList<String> minfo = new ArrayList<String>();
private ArrayList<String> msound = new ArrayList<String>();

/** In Setter method default it will return arraylist 
 *  change that to add  */

public ArrayList<String> getLat() {
    return mlat;
}

public void setLat(String lat) {
    this.mlat.add(lat);
}

public ArrayList<String> getLong() {
    return mlong;
}

public void setLong(String longs) {
    this.mlong.add(longs);
}

}

4

1 に答える 1