4

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>

これは私の XML 形式です。ここでは、XML からパーセンテージ値を解析したいと考えています。値を解析する方法を知っている人がいたら、教えてください。

4

2 に答える 2

3

これを行うにはいくつかの可能性があります。

たとえば、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 = "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に関するリンクです。

于 2012-10-12T09:27:52.353 に答える
2

XML 解析には、Android、DOM パーサー、プル パーサーなどでいくつかの選択肢があります。高速で推奨されるのは 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

Android での XML 解析に関する一般的なチュートリアルを次に示します。

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

于 2012-10-12T08:53:03.860 に答える