我怎样才能解析从URL XML在Android的?URL、XML、Android

2023-09-13 01:10:54 作者:小小青年◆

我目前正在使用已下载并分析了从那里一个XML,我喜欢直接从itself.How我能做到这一点,我已经添加了片段我使用below.Kindly帮助一个网址做片段或example.Thank你。

 的DocumentBuilderFactory厂= DocumentBuilderFactory.newInstance();
DocumentBuilder的建设者= factory.newDocumentBuilder();
档案文件=新的文件(this.getFilesDir(),FILE_EXTRACTED);
文档DOM = builder.parse(文件);
元根= dom.getDocumentElement();
root.normalize();
 

解决方案

在使用低于$ C $下解析XML从URL的android

 公共类XMLParsingDOMExample延伸活动{
    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);

        / **创建一个新的布局,以显示视图* /
        的LinearLayout布局=新的LinearLayout(本);
        layout.setOrientation(1);

        / **创建一个新的TextView数组来显示结果* /
        TextView的名称[];
        TextView的网站[];
        TextView的类[];

        尝试 {

            网址URL =新的URL(http://www.androidpeople.com/wp-content/uploads/2010/06/example.xml);
            DocumentBuilderFactory的DBF = DocumentBuilderFactory.newInstance();
            DocumentBuilder的DB = dbf.newDocumentBuilder();
            文档的文档= db.parse(新的InputSource(url.openStream()));
            doc.getDocumentElement()归()。

            节点列表节点列表= doc.getElementsByTagName(项目);

            / **指定的TextView阵列lenght由ArrayList的大小* /
            名称=新的TextView [nodeList.getLength()];
            网站=新的TextView [nodeList.getLength()];
            类别=新的TextView [nodeList.getLength()];

            的for(int i = 0; I< nodeList.getLength();我++){

                节点node = nodeList.item(ⅰ);

                名称[I] =新的TextView(本);
                网站[I] =新的TextView(本);
                类别[我] =新的TextView(本);

                元素fstElmnt =(元)节点;
                节点列表名单= fstElmnt.getElementsByTagName(姓名);
                元件nameElement =(元件)nameList.item(0);
                名单= nameElement.getChildNodes();
                命名[I] .setText(名称=+((节点)nameList.item(0))getNodeValue());

                节点列表websiteList = fstElmnt.getElementsByTagName(简称网站);
                元件websiteElement =(元件)websiteList.item(0);
                websiteList = websiteElement.getChildNodes();
                网站[I] .setText(网站=+((节点)websiteList.item(0))getNodeValue());

                类别[我] .setText(网站类别=+ websiteElement.getAttribute(类));

                layout.addView(名称[I]);
                layout.addView(网站[I]);
                layout.addView(类别[I]);
            }
        }赶上(例外五){
            的System.out.println(XML帕兴Excpetion =+ E);
        }

        / **设置布局视图中显示* /
        的setContentView(布局);

    }
}
 
Android studio中XML文件调用图片,这样有什么问题 格式吗 还有就是Android

I am currently using an xml that has been downloaded and been parsed from there,I like to do it directly from the url itself.How can I do that,I have added the snippet I am using below.Kindly help with a snippet or example.Thank you.

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
File file = new File(this.getFilesDir(), FILE_EXTRACTED);
Document dom = builder.parse(file);
Element root = dom.getDocumentElement();
root.normalize();

解决方案

Use below Code for parse xml from url in android

public class XMLParsingDOMExample extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        /** Create a new layout to display the view */
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(1);

        /** Create a new textview array to display the results */
        TextView name[];
        TextView website[];
        TextView category[];

        try {

            URL url = new URL("http://www.androidpeople.com/wp-content/uploads/2010/06/example.xml");
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document doc = db.parse(new InputSource(url.openStream()));
            doc.getDocumentElement().normalize();

            NodeList nodeList = doc.getElementsByTagName("item");

            /** Assign textview array lenght by arraylist size */
            name = new TextView[nodeList.getLength()];
            website = new TextView[nodeList.getLength()];
            category = new TextView[nodeList.getLength()];

            for (int i = 0; i < nodeList.getLength(); i++) {

                Node node = nodeList.item(i);

                name[i] = new TextView(this);
                website[i] = new TextView(this);
                category[i] = new TextView(this);

                Element fstElmnt = (Element) node;
                NodeList nameList = fstElmnt.getElementsByTagName("name");
                Element nameElement = (Element) nameList.item(0);
                nameList = nameElement.getChildNodes();
                name[i].setText("Name = " + ((Node) nameList.item(0)).getNodeValue());

                NodeList websiteList = fstElmnt.getElementsByTagName("website");
                Element websiteElement = (Element) websiteList.item(0);
                websiteList = websiteElement.getChildNodes();
                website[i].setText("Website = " + ((Node) websiteList.item(0)).getNodeValue());

                category[i].setText("Website Category = " + websiteElement.getAttribute("category"));

                layout.addView(name[i]);
                layout.addView(website[i]);
                layout.addView(category[i]);
            }
        } catch (Exception e) {
            System.out.println("XML Pasing Excpetion = " + e);
        }

        /** Set the layout view to display */
        setContentView(layout);

    }
}