Разбор XML-файла с использованием приложения java for-android

Я новичок в разборе XML-файла в java. У меня есть некоторое представление о том, как анализировать значения из атрибутов и значений из тегов, но в моем XML значения находятся в другом месте:

<ul xml:base="http//www.example.com"> <li> <strong>Ram</strong> : 45% </li> <li> <strong>CPU</strong> : 49% </li> <li> <strong>Undecided</strong> : 6% </li> </ul> 

Это мой формат XML, здесь я хочу проанализировать процентные значения из XML. Если кто-нибудь знает, как разбирать ценности, просьбы направляют меня?

Есть несколько возможностей сделать это.

Вы можете использовать, например, simplexml Framework.

Для этого вы можете попытаться создать несколько классов, которые помогут вам решить проблему.

Класс UL:

 import java.util.ArrayList; import java.util.List; import org.simpleframework.xml.ElementList; import org.simpleframework.xml.Root; @Root(name = "ul", strict = false) public class ULTag { @ElementList(name = "li", inline = true, required = false) List<LITag> liTags = new ArrayList<LITag>(); public List<LITag> getLiTags() { return liTags; } public void setLiTags(List<LITag> liTags) { this.liTags = liTags; } public ULTag() { } } 

Li Класс:

 import org.simpleframework.xml.Element; import org.simpleframework.xml.Root; @Root(name = "li", strict = false) public class LITag { @Element(name = "strong", required = false) private String strong; public LITag() { } public String getStrong() { return strong; } public void setStrong(String strong) { this.strong = strong; } } 

Вы также можете создать сильный класс, если хотите вставить в него больше вещей. Но здесь нам это не нужно.

 import org.simpleframework.xml.Element; import org.simpleframework.xml.Root; @Root(name = "strong", strict = false) public class StrongTag { @Element(name = "strong", required = false) private String strong; public StrongTag() { } public String getStrong() { return strong; } public void setStrong(String strong) { this.strong = strong; } } 

Удаление десериализации простого объекта

 Serializer serializer = new Persister(); File source = new File("yourxmlexampl.xml"); ULTag ulTag = serializer.read(ULTag.class, source); 

Сделайте то, что вы хотите с помощью ulTag. например:

 String percent=ulTag.getLITags().get(0).getStrong(); 

Может быть, это может вам помочь. Напиши мне написать. Это ссылка на структуру simplexml http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php

Для синтаксического анализа XML у вас есть несколько вариантов в Android, DOM-парсере, парсерах Pull и т. Д. Более быстрый и рекомендуемый – это XMLPullParser (см. http://developer.android.com/training/basics/network-ops/xml.html).

Я использую его, и он работает намного лучше, чем парсер DOM для больших данных.

Если у вас нет больших данных для синтаксического анализа, вы можете использовать парсер DOM.

Вот документация или XMLPullParser: http://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html

И учебник о том, как его использовать: http://www.vogella.com/articles/AndroidXML/article.html

И вот общий учебник по разбору XML в Android

http://www.ibm.com/developerworks/opensource/library/x-android/