Android 如何从远程服务器读取变量?

Android 如何从远程服务器读取变量?,android,xml,string,Android,Xml,String,我目前正在开发一个小型远程图像查看器应用程序 我需要知道的是如何从远程服务器上的Xml文件中读取字符串变量,并将它们放入string[]中。所以我的程序可以按照我的意愿使用它们。Xml文件中的所有变量都是字符串(即“http://www.website.com/image.png)) 我可以使用本地Xml来实现这一点,但如何从远程Xml文件中实现这一点呢?一种方法是使用SAX解析器,如本文所述我只需为正在开发的应用加载Xml。这是我目前使用的方法。您必须更改它以适应您的XML结构,但这应该会给您

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

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


我可以使用本地
Xml
来实现这一点,但如何从远程
Xml
文件中实现这一点呢?

一种方法是使用SAX解析器,如本文所述

我只需为正在开发的应用加载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();
    }
}
private void loadXML()
{
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
文档生成器数据库;
尝试
{
db=dbf.newDocumentBuilder();
尝试
{
Document doc=db.parse(新URL(“http://yoursite.com/presentation.xmlopenStream());
元素docElement=doc.getDocumentElement();
NodeList nl=docElement.getElementsByTagName(“幻灯片”);
如果(nl!=null&&nl.getLength()>0)
{
字符串slideArray[]=新字符串[nl.getLength()];
vforumLength=nl.getLength();
对于(int i=0;i
以及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>

标题1
标题2
标题3
标题4
标题5

我的实际XML有点复杂,但我对它进行了精简,这样就不必查看不相关的数据了

我建议也使用sax解析器