0

私はいくつかの作業を行っており、URL を介しJSONXML解析しています。私が使用しているURLはJSONObject、私が持っているXML.

これが私のコードです。

HttpClient hClient = new DefaultHttpClient();
        HttpGet hGet = new HttpGet(
                "URL for getting results");
        ResponseHandler<String> rHandler = new BasicResponseHandler();
        data = hClient.execute(hGet, rHandler);

        JSONObject json = new JSONObject(data);
        // get xml string form jsonObject
        String str_xml = json.getString("output");

        // now convert str_xml to xml document for xml parsing
        DocumentBuilderFactory factory = DocumentBuilderFactory
                .newInstance();
        DocumentBuilder db = factory.newDocumentBuilder();
        InputSource inStream = new InputSource();
        inStream.setCharacterStream(new StringReader(str_xml));
        Document doc = db.parse(inStream); // <<< getting xml Document here

これが私JSONObjectが得ているものですXML

{
"output": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Results>\n    <Feed prov=\"dmoz\">\n        <ResultSet id=\"webListings\" source=\"DMOZ\">\n            <Listing description=\" - A bike shop in Brisbane. Stocks mountain bikes, road bikes, and BMX bikes.\n                    \" rank=\"1\" siteHost=\"http://www.lifecycle.net.au/\" title=\"Lifecycle Bike Shop\">\n                <ClickUrl type=\"body\">http://www.lifecycle.net.au/</ClickUrl>\n            </Listing>\n            <Listing description=\" - Videos and pictures taken of both sport bikes and dirt bikes.\n                    \" rank=\"2\" siteHost=\"http://roadanddirt.com/\" title=\"Road and Dirt\">\n                <ClickUrl type=\"body\">http://roadanddirt.com/</ClickUrl>\n            </Listing>\n</Results>"
}

ここで、リストビューでそれらを解析XMLして修正する必要があります。XMLここに私が得ているサンプルがあります:

<Results>
<Feed prov="dmoz" >
    <ResultSet id="webListings" source="DMOZ" >
        <Listing description=" - A bike shop in Brisbane. Stocks mountain bikes, road bikes, and BMX bikes. " rank="1" siteHost="http://www.lifecycle.net.au/" title="Lifecycle Bike Shop" >
            <ClickUrl type="body" >http://www.lifecycle.net.au/</ClickUrl>
        </Listing>
        <Listing description=" - Videos and pictures taken of both sport bikes and dirt bikes. " rank="2" siteHost="http://roadanddirt.com/" title="Road and Dirt" >
             <ClickUrl type="body" >http://roadanddirt.com/</ClickUrl>
        </Listing>
        <Listing description=" - Resource dedicated to pocket bike enthusiasts both in Australia and overseas. " rank="4" siteHost="http://www.pocket-bike-racing.com.au/" title="Pocket Bike Racing" >
            <ClickUrl type="body" >http://www.pocket-bike-racing.com.au/</ClickUrl>
        </Listing>
    </ResultSet>
</Feed>
</Results>

リストビューでこれらの問題を修正するのを手伝ってくれる人がいますか。助けていただければ幸いです。

4

2 に答える 2

0

新しいxmlファイルを作成します。xml コンテンツをそれに書き込みます。そして、SAXParser を使用してその xml ファイルの解析を開始します。

InputSource is = new InputSource(new InputStream(xml_file));

SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();

dataHandler = new UIXMLHandler();
xr.setContentHandler(dataHandler);
xr.parse(is);

UIXMLHandler.java

public class UIXMLHandler extends DefaultHandler {

    @Override
    public void startElement(String uri, String localName, String qName,Attributes atts){
        //here find the appropriate element, get it's attribute value if exist.
    }

    @Override
    public void endElement(String uri, String localName, String qName){
       //element ends
    }

    @Override
    public void characters(char[] ch, int start, int length){
      String data = new String(ch, start, length);
      data = data.trim();
      //data is the value you are going to use.
    }
}

これがあなたに役立つことを願っています。

于 2013-02-18T07:17:36.833 に答える
0

以下のリンクは、Android 内で XML を解析する方法を例で明確に説明しています。その後、listViewAdapter を作成し、リストビューにデータを挿入するだけです。

http://developer.android.com/training/basics/network-ops/xml.html

これは、listView で役立ちます。

http://developer.android.com/guide/topics/ui/layout/listview.html

于 2013-02-18T06:50:48.333 に答える