我目前正在研究一個小型的遠程圖像查看器應用程序。如何從遠程服務器讀取變量?
我需要知道的是如何從遠程服務器上的Xml
文件讀取字符串變量,並將它們放入String[]
。所以我的程序可以使用他們我想要的。在Xml
文件中的所有變量都是字符串(IE「http://www.website.com/image.png」)
我能做到這一點與當地Xml
,但我會怎麼做這從一個遠程Xml
文件?
我目前正在研究一個小型的遠程圖像查看器應用程序。如何從遠程服務器讀取變量?
我需要知道的是如何從遠程服務器上的Xml
文件讀取字符串變量,並將它們放入String[]
。所以我的程序可以使用他們我想要的。在Xml
文件中的所有變量都是字符串(IE「http://www.website.com/image.png」)
我能做到這一點與當地Xml
,但我會怎麼做這從一個遠程Xml
文件?
我不得不來加載XML爲應用我的工作使用SAX解析器。這是我目前使用的方法。你必須改變它以適應你的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是更復雜一點,但我修剪它,所以你不必去通過無關的數據
我建議使用薩克斯解析器也 – wired00 2011-05-31 19:52:10