我目前正在使用包含大量第一级<ul>
元素的<li>
元素。我想得到那些元素,只有那些元素。但是,当我使用Jsoup选择器或getElementsByTag获取它们时,它会在这些第一级<li>
元素中返回<li>
个元素。
我该怎么做才能获得第一级<li>
元素?
以下是代码:
Elements bundleList = indieGala.select("section.games_bundle_box2")
.get(0).select("ul.unlock")
.get(0).getElementsByTag("li");
这是html:
<section class="games_bundle_box2">
<div class="games-container">
<!-- List Game Unlocked -->
<ul class="unlock">
<!-- Item -->
<li>
<!-- Preview Thumb -->
<a href="#game1" class="fancybox-various" title="Desura & Steam for Windows and Mac - This game has been GreenLighted on Steam and all buyers of The IndieGala Flashpoint bundle will receive Steam keys in a few weeks!">
<span class="tier1">
Pay minimum
<em class="color-text">
$1
</em>
to get Steam & Desura keys!
</span>
<span class="boxed">
</span>
<span class="steam-temp">
</span>
<span class="desura-icon">
</span>
<img src="img_game/ig-flashpoint/knytt.jpg" alt="">
<!-- 110 x 110 -->
<span class="item-title">
Knytt Underground
</span>
</a>
<!-- End Preview Thumb -->
<!-- Pop-Up -->
<div id="game1" class="modal_content">
<!-- Video Game Box -->
<div class="game_movie">
<iframe width="488" height="300" src="http://www.youtube.com/embed/NwZ2Z7WRQrI?rel=0&vq=hd720" frameborder="0" allowfullscreen="">
</iframe>
</div>
<!-- End Video Game Box -->
<!-- Game Description -->
<div class="game_description">
<h2>
<a href="http://www.desura.com/games/knytt-underground" target="_blank">
Knytt Underground
</a>
</h2>
<a href="http://nifflas.ni2.se/" target="_blank">
Nifflas' Games
</a>
<p style="font-weight: bold;">
IMPORTANT NOTE: This game has been accepted on Steam. As soon as it will available on the Steam store, all buyers will receive a Steam key for it.
</p>
<p>
Immerse yourself in a unique and challenging underground adventure!
</p>
<p>
Knytt Underground is the latest iteration in the critically acclaimed Knytt series. It takes place in the same universe as Knytt Stories, the renowned indie game from Nicklas Nygren, a.k.a. 'Nifflas'.
</p>
<p>
Each room in the huge map offers a small challenge to overcome using the unique tried and tested mechanics that have already reached over 1 million fans worldwide. Blending zen-like gameplay; enjoy an unparalled sense of freedom by running, jumping, climbing, swinging and bouncing. Knytt Underground delivers a unique and captivating, platform adventure experience allowing you to explore over 1,800 rooms and complete multiple story-driven quests.
</p>
<p>
<a href="#" target="_blank">
System requirements
</a>
</p>
<p>
Operating system: Windows (XP / Vista / 7 / 8) or Mac OS 10.6
<br>
OpenGL compatible graphics card with 512MB memory or more.
<br>
A 2ghz CPU is needed.
<br>
The OS X version requires Mac OS 10.6 and must be running in 64-bit mode.
<br>
</p>
</div>
</div>
<!-- End Pop-Up -->
</li>
<!-- End Item -->
<li>
<a href="#game2" class="fancybox-various" title="Steam for Windows">
<span class="boxed">
</span>
<span class="steam-icon">
</span>
<img src="img_game/ig-flashpoint/saira.jpg" alt="">
<span class="item-title">
Saira
</span>
</a>
<div id="game2" class="modal_content">
<div class="game_movie">
<iframe width="488" height="300" src="http://www.youtube.com/embed/iFPaXcLF5b0?rel=0&vq=hd720" frameborder="0" allowfullscreen="">
</iframe>
</div>
<div class="game_description">
<h2>
<a href="http://store.steampowered.com/app/48900/" target="_blank">
Saira
</a>
</h2>
<a href="http://nifflas.ni2.se/" target="_blank">
Nifflas' Games
</a>
<p>
Saira is a puzzle platformer with non-linear gameplay and a whole universe for you to explore. The game is heavily influenced by classic puzzle adventure games and uses a new unique graphical style combining high resolution photography into a lush and mysterious world.
</p>
<p>
The eponymous Saira is a photographer who specializes in digitally capturing dangerous places and animals across the universe. For reasons unknown, she finds herself as the only remaining person in the entire galaxy. Saira has no weapons, she will use only her mind and agility to progress through seven star systems and over 60 well-crafted puzzles. Over two hours of originally-scored music will help her maintain focus and unlock one of six vastly unique endings.
</p>
<ul>
<li>
Over 60 well-crafted puzzels.
</li>
<li>
A universe full of surprising creatures and locations for you to explore.
</li>
<li>
11 layers of high definition parallax scrolling and a two hour soundtrack gives the universe of Saira it's unique atmosphere.
</li>
<li>
Non-linear gameplay
</li>
<li>
Multiple endings
</li>
</ul>
<p>
<a href="#" target="_blank">
System requirements
</a>
</p>
<p>
OS: Windows 2000 or later
<br>
Processor: 2.1Ghz or higher
<br>
DirectX®: 9
<br>
Hard Drive: 250 MB for downloading the game + 200 MB for playing
<br>
</p>
</div>
</div>
</li>
<!-- End Item -->
<!-- Item -->
<li>
<!-- Preview Thumb -->
<a href="#game3" class="fancybox-various" title="Steam for Windows">
<span class="boxed">
</span>
<span class="steam-icon">
</span>
<img src="img_game/ig-flashpoint/musaic.jpg" alt="">
<!-- 110 x 110 -->
<span class="item-title">
Musaic Box
</span>
</a>
<!-- End Preview Thumb -->
<!-- Pop-Up -->
<div id="game3" class="modal_content">
<!-- Video Game Box -->
<div class="game_movie">
<iframe width="488" height="300" src="http://www.youtube.com/embed/ZswOQE8MDbo?rel=0&vq=hd720" frameborder="0" allowfullscreen="">
</iframe>
</div>
<!-- End Video Game Box -->
<!-- Game Description -->
<div class="game_description">
<h2>
<a href="http://store.steampowered.com/app/29130/" target="_blank">
Musaic Box
</a>
</h2>
<a href="http://kranx.com/en/" target="_blank">
KranX Productions
</a>
<br>
<br>
<p>
Uncover all of your grandfather's sheet music, hidden in his home amongst a treasure trove of gorgeous antiques and musical relics. Melodious music box games will let you piece these special compositions together and unleash their symphonious secrets. Unlock Creative Mode and write your own outstanding arrangements. With a house full of secrets and a box full of music the aural excitement never ends.
</p>
<ul>
<li>
Beautifully rendered graphics
</li>
<li>
Entrancing musical score
</li>
<li>
Unlock musical mysteries!
</li>
</ul>
<p>
<a href="#" target="_blank">
System requirements
</a>
</p>
<p>
Supported OS: Microsoft® Windows® 2000/XP/Vista
<br>
Processor: 800Mhz
<br>
Graphics: DirectX® compatible with 16 MB of Video Memory
<br>
Sound: DirectX® compatible Sound Card
<br>
DirectX® Version: DirectX 8.0
<br>
Memory: 256 MB RAM (512+MB recommended)
<br>
Hard Drive: 54 MB or more
<br>
</p>
</div>
<!-- End Game Description -->
</div>
<!-- End Pop-Up -->
</li>
<!-- End Item -->
<!-- Item -->
<li>
<!-- Preview Thumb -->
<a href="#game4" class="fancybox-various" title="Steam for Windows">
<span class="boxed">
</span>
<span class="steam-icon">
</span>
<img src="img_game/ig-flashpoint/yumsters.jpg" alt="">
<!-- 110 x 110 -->
<span class="item-title">
Yumsters 2: Around the World
</span>
</a>
<!-- End Preview Thumb -->
<!-- Pop-Up -->
<div id="game4" class="modal_content">
<!-- Video Game Box -->
<div class="game_movie">
<iframe width="488" height="300" src="http://www.youtube.com/embed/m19AcPO_LMQ?rel=0&vq=hd720" frameborder="0" allowfullscreen="">
</iframe>
</div>
<!-- End Video Game Box -->
<!-- Game Description -->
<div class="game_description">
<h2>
<a href="http://store.steampowered.com/app/29120/" target="_blank">
Yumsters 2: Around the World
</a>
</h2>
<a href="http://kranx.com/en/" target="_blank">
KranX Productions
</a>
<p>
Not only are these Yumsters crazy for strawberries, they can rock the bongos. For the love of fruity music, help them earn money by cleaning gardens to promote their band. To really skyrocket, Yumsters need the best equipment to win the ultimate grand prize at the fairy town music showdown. Get fruitilicious in five vibrant locations of Yumsters 2, a sweet Match 3 puzzler.
</p>
<p>
Key Features:
</p>
<ul>
<li>
Match 3, drag-n-drop
</li>
<li>
Rhythm-based gameplay
</li>
<li>
Adorable characters
</li>
<li>
Win the grand prize!
</li>
</ul>
<p>
<a href="#" target="_blank">
System requirements
</a>
</p>
<p>
Operating System: Microsoft® Windows® XP/Vista
<br>
Processor: 600 Mhz
<br>
Memory: 256 MB (512+ MB recommended)
<br>
Hard Disk Space: 54 MB (or More) Available HDD Space
<br>
Video Card: DirectX® compatible with 16 MB of Video Memory
<br>
Sound Card: DirectX® compatible Sound Card
<br>
DirectX® Version: DirectX® 7.0
<br>
</p>
</div>
<!-- End Game Description -->
</div>
<!-- End Pop-Up -->
</li>
<!-- End Item -->
<li style="width: 400px;font-weight: bold; margin-top: 20px; position: relative; left: 210px; font-size: 16px;">
Price BLOCKED at
<span class="color-text">
$3.99
</span>
for the FIRST 8 HOURS
</li>
-->
</ul>
<!-- End List Game Locked -->
</div>
</section>
答案 0 :(得分:10)
也许我忽略了一些事情,但是如何基于ul.unlock
的直接下降进行选择?您可以在选择器表达式中使用>
来执行此操作:
parent > child
:直接从父级下降的子元素,例如div.content > p
找到p
个元素;并body > *
找到body
代码(source)的直接子代
使用ul.unlock > li
时,它应该只选出您想要的顶级li
元素,例如:
ListIterator<Element> bundleList = indieGala.select("section.games_bundle_box2")
.get(0)
.select("ul.unlock > li")
.listIterator();
assert Iterators.size(bundleList) == 5;
我希望有所帮助。
答案 1 :(得分:1)
你可以简单地使用这个来寻找孩子 -
Elements bundleList = indieGala.select("section.games_bundle_box2").first().select("ul.unlock").first().children();
这应该比执行选择器更快,在你的情况下会给你你想要的确切结果。
答案 2 :(得分:0)
这使您可以访问ul tag的所有直接子(li):
Elements lis = doc.select(“section.games_bundle_box2”)。first()。select(“ul.unlock&gt; li”);
这是你想要的吗?