【问题标题】:How do I read variables from a remote server?如何从远程服务器读取变量?
【发布时间】:2011-05-31 17:55:54
【问题描述】:

我目前正在开发一个小型远程图像查看器应用程序。

我需要知道的是如何从远程服务器上的Xml 文件中读取字符串变量并将它们放入String[]。所以我的程序可以按照我的意愿使用它们。 Xml 文件中的所有变量都是字符串(即“http://www.website.com/image.png”)

我可以使用本地 Xml 执行此操作,但如何从远程 Xml 文件执行此操作?

【问题讨论】:

    标签: android xml string


    【解决方案1】:

    一种方法是使用此处描述的 SAX 解析器http://www.codingforandroid.com/2010/12/reading-remote-xml-file-with-sax.html

    【讨论】:

    • 我建议也使用 sax 解析器
    【解决方案2】:

    我只需要为我正在开发的应用程序加载 XML。这是我目前使用的方法。您必须更改它以适合您的 XML 结构,但这应该给您一个很好的主意。我还是 java 和 android 的新手,所以他们可能是一个更好的解决方案

    private void loadXML()
    {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db;
        try
        {
            db = dbf.newDocumentBuilder();
            try
            {
                Document doc = db.parse(new URL("http://yoursite.com/presentation.xml").openStream());
                Element docElement = doc.getDocumentElement();
                NodeList nl = docElement.getElementsByTagName("Slide");
    
                if (nl != null && nl.getLength() > 0)
                {
                    String slideArray[] = new String[nl.getLength()];
                    vforumLength = nl.getLength();
    
                    for (int i = 0; i < nl.getLength(); i++)
                    {
                        Element slideElement = (Element) nl.item(i);
                        NodeList titleList   = slideElement.getElementsByTagName("Title");
                        Element titleElement = (Element) titleList.item(0);
                        String title         = titleElement.getFirstChild().getNodeValue();
                        slideArray[i]        = title;
                        Log.i("xml",title);
                    }
                }
            }
            catch (MalformedURLException e)
            {
                e.printStackTrace();
            }
            catch (SAXException e)
            {
                e.printStackTrace();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
        }
        catch (ParserConfigurationException e)
        {
            e.printStackTrace();
        }
    }
    

    和 XML:

    <?xml version="1.0" encoding="UTF-8"?>
    <vForum>
        <Slides>
            <Slide id="1" tcIn="00:00:00.0" tcOut="00:00:00.0">
                <Title>Title 1</Title>
            </Slide>
            <Slide id="2" tcIn="00:00:00.0" tcOut="00:00:00.0">
                <Title>Title 2</Title>
            </Slide>
            <Slide id="3" tcIn="00:00:00.0" tcOut="00:00:00.0">
                <Title>Title 3</Title>
            </Slide>
            <Slide id="4" tcIn="00:00:00.0" tcOut="00:00:00.0">
                <Title>Title 4</Title>
            </Slide>
            <Slide id="5" tcIn="00:00:00.0" tcOut="00:00:00.0">
                <Title>Title 5</Title>
            </Slide>
        </Slides>
    </vForum>
    

    我的实际 XML 有点复杂,但我把它删减了,所以你不必检查不相关的数据

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-22
      • 2023-03-05
      • 2021-02-23
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-12
      相关资源
      最近更新 更多