我正在启动一个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的使用 –