我正在啓動一個Android應用程序,它將解析來自Web的XML。我創建了一些Android應用程序,但他們從未涉及解析XML,我想知道是否有人有關於最佳方式的任何提示?從網站解析XML到Android設備
回答
下面是一個例子:
try {
URL url = new URL(/*your xml url*/);
URLConnection conn = url.openConnection();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(conn.getInputStream());
NodeList nodes = doc.getElementsByTagName(/*tag from xml file*/);
for (int i = 0; i < nodes.getLength(); i++) {
Element element = (Element) nodes.item(i);
NodeList title = element.getElementsByTagName(/*item within the tag*/);
Element line = (Element) title.item(0);
phoneNumberList.add(line.getTextContent());
}
}
catch (Exception e) {
e.printStackTrace();
}
在我的例子,我的XML文件看起來有點像:
<numbers>
<phone>
<string name = "phonenumber1">555-555-5555</string>
</phone>
<phone>
<string name = "phonenumber2">555-555-5555</string>
</phone>
</numbers>
,我會用 「手機」 和/*item within the tag*/
與 「串」 替換/*tag from xml file*/
。
我總是使用w3c dom類。我有一個靜態幫助器方法,用於將xml數據解析爲字符串並返回給我一個Document對象。你得到的XML數據可以變化(網絡,文件等),但最終你加載它作爲一個字符串。
這樣的事情...
Document document = null;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
try
{
builder = factory.newDocumentBuilder();
InputSource is = new InputSource(new StringReader(data));
document = builder.parse(is);
}
catch (SAXException e) { }
catch (IOException e) { }
catch (ParserConfigurationException e) { }
有可用的不同類型的解析機制,一個是SAX Here is SAX parsing example,二是DOM解析Here is DOM Parsing example.。從你的問題來看,你不清楚你想要什麼,但這可能是一個很好的起點。
非常感謝各位,他給他們一個嘗試聽到,時間來擊中關於DOM和SAX解析然後:(書上 – carsey88
如果XML文件不是太大,我會使用DOM解析器,它不如SAX高效,因爲在這種情況下更容易。
我只做了一個android應用程序,涉及到XML解析。從SOAP Web服務接收到的XML。我使用了XmlPullParser。來自Xml.newPullParser()的實現存在一個錯誤,即對文檔承諾的nextText()調用並不總是前進到END_TAG。有一個解決這個問題的方法。
我知道有三種解析類型:DOM,SAX和XMLPullParsing。
在我的例子中,你需要XML元素的URL和父節點。
try {
URL url = new URL("http://www.something.com/something.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource(url.openStream()));
doc.getDocumentElement().normalize();
NodeList nodeList1 = doc.getElementsByTagName("parent node here");
for (int i = 0; i < nodeList1.getLength(); i++) {
Node node = nodeList1.item(i);
}
} catch(Exception e) {
}
也試試this。
- 1. android-無法從網站解析xml
- 2. 從網站解析xml Java
- 3. 從網站解析Python XML
- 4. 從網站解析XML文件到UITextView
- 5. 從遠程網站解析xml數據
- 6. 從網站解析XML響應
- 7. ActionScript 3從網站解析XML
- 8. 從網站解析Xcode XML文件
- 9. 從網站獲取數據到XML並解析XML數據
- 10. Android - 從網站解析文本
- 11. Java Android的XML解析,無法連接到網站?
- 12. 從網站通信到本地設備
- 13. 從網站解析livescores
- 14. 從網頁解析XML
- 15. 從android網站加載XML
- 16. Objective-C:解析一個非xml網站
- 17. 在Js中爲網站解析XML
- 18. 解析網站
- 19. 解析網站
- 20. 從xml解析android資源
- 21. 評分參數從Android設備到WordPress網站的JSON輸入?
- 22. 從網站解析XML並從元素中獲取值
- 23. Android解析XML
- 24. Android解析XML
- 25. Android XML解析
- 26. ANDROID:解析XML
- 27. XML解析Android
- 28. 在android移動設備中解析XML有多種選擇?
- 29. 從網絡驅動器打開XML並使其準備解析
- 30. 網站如何識別Android設備
這是導致我這個錯誤:http://stackoverflow.com/questions/13270372/ Android的操作系統networkonmainthreadexception-時,試圖對連接環比WiFi的使用 –