0
次のXMLツリーがあり、Jsoupを使用して解析しています。Jsoupで第1レベルノードのみを取得する方法
<?xml version="1.0" encoding="UTF-8" ?>
<nodes>
<node>
<name>NODE 1</name>
<value1>
<value1>NODE 1 VALUE 1</value1>
</value1>
<nodes>
<node>
<name>NODE 1 CHILD</name>
<value1>NODE 1 CHILD VALUE 1</value1>
</node>
</nodes>
</node>
<node>
<name>NODE 2</name>
<value1>NODE 2 VALUE 1</value1>
</node>
</nodes>
しかし、私はノード要素の最初のレベルを取得しようとします。それは、子ノードを含むすべての要素を返します。それは、明確に子要素も私のクエリに一致するため、正しく実行しています。
Elements elements = data.select("nodes > node");
XMLデータにレベル情報を追加せずに第1レベルのノード要素だけを取得する方法はありますか?
Elements elements = data.select("> nodes > node");
をしかし、あなたはXMLを解析するためにJsoup.parse(xml, "", Parser.xmlParser())
を使用しましたし、XMLは、あなたのように実際にある場合のみ:
Elements elements = data.select("nodes").first().select("> node");
これは同様に動作します:
あなたの答えは動作します。しかし、私が実際に必要としたのはint depth = e.parents()。size();これで正しい深さを知ることができます。 – newbie