使用java for——基于android的应用程序解析xml文件
我不熟悉用java解析xml文件。我知道如何从属性解析值,从标记解析值,但在我的XML中,值位于不同的位置:使用java for——基于android的应用程序解析xml文件,java,android,xml,xml-parsing,Java,Android,Xml,Xml Parsing,我不熟悉用java解析xml文件。我知道如何从属性解析值,从标记解析值,但在我的XML中,值位于不同的位置: <ul xml:base="http//www.example.com"> <li> <strong>Ram</strong> : 45% </li> <li> <strong>CPU</strong> :
<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>
Ram
: 45%
CPU
: 49%
未决定
: 6%
这是我的XML格式,这里我想解析XML中的百分比值。如果有人知道如何解析值,请指导我?对于XML解析,您可以在Android、DOM解析器、Pull解析器等中选择。 速度更快且推荐的是XMLPullParser(请参阅) 我正在使用它,对于大数据,它比DOM解析器工作得更好 如果没有要解析的大数据,可以使用DOM解析器 以下是XMLPullParser的文档: 以及如何使用它的教程: 这里有一个关于Android中XML解析的一般教程
有几种可能做到这一点 例如,您可以使用simplexml框架 为此,您可以尝试创建一些类来帮助您解决问题 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() {
}
}
如果您想在其中插入更多内容,还可以创建一个强类。但在这里我们不需要它
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做任何你想做的事。e、 g:
String percent=ulTag.getLITags().get(0).getStrong();
也许这对你有帮助。请随时给我写信。
这是一个关于simplexml框架的链接
谢谢米洛斯,我对jdom有些了解。但是我的xml包含像Ram这样的标签:45%。我知道如何解析属性和直接标记中的值。但我对这种标签不熟悉。你能告诉我如何解析中的值和百分比值吗。提前感谢。要在jdom中获取文本,您可以使用
Element.getText()
方法。正如@user802421所说,您可以使用getText()方法。XMLPullParser也是如此。获取元素后,可以使用getText()仅提取其值(标记内部);如果您使用的是dom,那么简单的XML可能会很有趣。
String percent=ulTag.getLITags().get(0).getStrong();