私はjavaを使い慣れていて、確かにjsoupを初めて使っています。私のプログラムのこの予備ステップでは、私は自分のコンテンツを出力するために使用できるオブジェクトにWebベースのXMLファイルを取得しようとしています。 (これは巨大なXMLファイルであり、最終的にフィルタを追加できるようにしたい)jsoupでXMLを読む
ここにいくつかのサンプルXMLがあります。
<spell>
<name>Acid Splash</name>
<level>0</level>
<school>C</school>
<time>1 action</time>
<range>60 feet</range>
<components>V, S</components>
<duration>Instantaneous</duration>
<classes>Sorcerer, Wizard, Fighter (Eldritch Knight), Rogue (Arcane Trickster)</classes>
<text>You hurl a bubble of acid. Choose one creature within range, or choose two creatures within range that are within 5 feet of each other. A target must succeed on a Dexterity saving throw or take 1d6 acid damage.</text>
<text />
<text>This spells damage increases by 1d6 when you reach 5th Level (2d6), 11th level (3d6) and 17th level (4d6).</text>
<roll>1d6</roll>
<roll>2d6</roll>
<roll>3d6</roll>
<roll>4d6</roll>
</spell>
<spell>
<name>Aid</name>
<level>2</level>
<school>A</school>
<time>1 action</time>
<range>30 feet</range>
<components>V, S, M (a tiny strip of white cloth)</components>
<duration>8 hours</duration>
<classes>Artificer, Cleric, Paladin</classes>
<text>Your spell bolsters your allies with toughness and resolve. Choose up to three creatures within range. Each target's hit point maximum and current hit points increase by 5 for the duration.</text>
<text />
<text>At Higher Levels: When you cast this spell using a spell slot of 3rd level or higher, a target's hit points increase by an additional 5 for each slot level above 2nd.</text>
</spell>
これまでのコードです。私はこれが何をしたいのか
private class Description extends AsyncTask<Void, Void, Void> {
String desc;
@Override
protected Void doInBackground(Void... params) {
try {
// Connect to the web site
Document document = Jsoup.parse(new URL(url).openStream(), "UTF-8", "", Parser.xmlParser());
Elements elements = document.getElementsMatchingOwnText("name");
// Using Elements to get the Meta data
for(Element e : elements) {
desc = desc +", "+ e;
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
// Set description into TextView
TextView txtdesc = (TextView) findViewById(R.id.desctxt);
txtdesc.setText(desc);
}
}
:
出力: 出力::
<text>
This spells damage increases by 1d6 when you reach 5th Level (2d6), 11th level (3d6) and 17th level (4d6).
</text>, <text>
At Higher Levels: When you cast this spell using a spell slot of 3rd level or higher, a target's hit points increase by an additional 5 for each slot level above 2nd.
</text>
のようにこれは、私はそれを解決しようとしていた方法よりもずっといいです。 +1をstringbuilderに追加してくれました。この最後の部分は、特定の値を持つ特定の子を持つ要素を引き出す条件を追加する方法です。 (これはif(specificChildElement.text()。equals( "4"){}? – kyle
@kyleこんにちは。これは新しい問題ですので別の質問が必要です(これに関連していても)。セレクタの詳細については、https:/ /で確認することができます。:(:seletor)セレクタを探しています。 /jsoup.org/cookbook/extracting-data/selector-syntax – Pshemo