Как мне прочитать переменные с удаленного сервера? - PullRequest
0 голосов
/ 31 мая 2011

В настоящее время я работаю над небольшим приложением для просмотра удаленных изображений.

Мне нужно знать, как читать строковые переменные из файла Xml на удаленном сервере и помещать их в String[],Так что моя программа может использовать их так, как я хочу.Все переменные в файле Xml являются строками (IE "http://www.website.com/image.png")

. Я могу сделать это с локальным Xml, но как мне сделать это из удаленного файла Xml?

Ответы [ 2 ]

1 голос
/ 31 мая 2011

Один из способов - использовать SAX-парсер, как описано здесь http://www.codingforandroid.com/2010/12/reading-remote-xml-file-with-sax.html

0 голосов
/ 31 мая 2011

Мне просто нужно было загрузить 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 немного сложнее, но я урезал его, чтобы вам не приходилось просматривать ненужные данные

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...