#android #xml #string
#Android #xml #строка
Вопрос:
В настоящее время я работаю над небольшим приложением для удаленного просмотра изображений.
Что мне нужно знать, так это как прочитать строковые переменные из Xml
файла на удаленном сервере и поместить их в String[]
. Таким образом, моя программа может использовать их так, как я хочу. Все переменные в Xml
файле являются строками (Т.Е. «http://www.website.com/image.png «)
Я могу сделать это с помощью локального, Xml
но как мне сделать это из удаленного Xml
файла?
Ответ №1:
Один из методов заключается в использовании синтаксического анализатора SAX, как описано здесь http://www.codingforandroid.com/2010/12/reading-remote-xml-file-with-sax.html
Комментарии:
1. Я предлагаю также использовать синтаксический анализатор 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 amp;amp; 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 немного сложнее, но я урезал его, чтобы вам не приходилось просматривать нерелевантные данные