使用java for——基于android的应用程序解析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> :

我不熟悉用java解析xml文件。我知道如何从属性解析值,从标记解析值,但在我的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>

  • 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();