0

これが私が試みていることです: 私は名前のリストを持っています。その名前に応じて XML ファイルを検索したい。

XML は次のようになります。

    <book>
       <string> book name </string>
       <array>
          <string> Name1 </string>
          <string> Name2 </string>
       </array>
    </book>

ここで、「Name1」と言って検索し、一致する場合は本の名前を取得したいと考えています。これは可能ですか?はいの場合、誰かがコード/スニペットを提供するか、それを行う方法を教えてください。ありがとうございました

4

3 に答える 3

0

回答ありがとうございます。ここのチュートリアルを使用して、このメソッドを作成して XML を検索しています。

        public List<String> search(String key, String url){

           List<String> items = new ArrayList<String>();
           XmlParser parser = new XmlParser();
           String xml = parser.getXmlFromUrl(url); // getting XML
           Document doc = parser.getDomElement(xml);
           NodeList nl = doc.getElementsByTagName("book");

           for(int i = 0; i<nl.getLength();i++){
              Element e = (Element) nl.item(i);
              NodeList n = e.getElementsByTagName("string"); 
              if(parser.getElementValue(n.item(1)).equals(key) ||
                 parser.getElementValue(n.item(2)).equals(key) ){

                 items.add(parser.getElementValue(n.item(0))); 
              }
            }
           return items;
         }
于 2013-09-22T21:36:17.743 に答える
0

Android には、組み込みの XML 解析関数がいくつかあります。http://developer.android.com/training/basics/network-ops/xml.htmlをご覧ください。

基本的:

1) XML コンテンツの InputStream を設定します (たとえば、ダウンロードする場合、または getResources() から読み取る場合)。

2) パーサーをセットアップします。XmlPullParser parser = Xml.newPullParser();

3) ループで XML の読み取りを開始します。parser.getName().equals("string")parser.getName().equals("book") の場合は、parser.getText(); の結果を取得して保存するまで続行します。次に続けてヒットparser.getName().equals("array")し、再び にparser.getName().equals("string")進み、parser.getText() の結果をチェックして、検索文字列と一致するかどうかを確認します。

泥のように透明?

XML の構文解析は、20 年ほど前に宣伝されていたよりもはるかに困難ですが、パーサーが XML を受け取ったときにそれを読み取ることを理解すると、XML の実装方法の全体像を把握するのが少し簡単になります。そのリンクを調べてください。知る必要があるすべての情報が得られます。

于 2013-09-22T20:50:30.497 に答える