穿越回了XPath父节点 [英] Traversing back to parent node in xpath

查看:103
本文介绍了穿越回了XPath父节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面是我的HTML

<ul><li class="section">BROADCASTING</li>
<ul>
<li class="subsection"></li>
<li class="circle"><a href="/article/95242-STATION_BREAK.php">STATION BREAK</a></li>
<li class="circle"><a href="/article/98142-Labor_pains_hunger_pangs.php">Labor pains, hunger pangs</a></li>
<li class="circle"><a href="/article/101509-Wake_up_call_for_Dream_Team.php">Wake-up call for Dream Team</a></li>
<li class="circle"><a href="/article/136139-News_crew_turns_rescuer.php">News crew turns rescuer</a></li>
<li class="circle"><a href="/article/136140-Chopper_safety_had_been_challenged.php">Chopper safety had been challenged</a></li>
<li class="circle"><a href="/article/136142-Nielsen_adds_Dayton_.php">Nielsen adds Dayton..</a></li>
<li class="circle"><a href="/article/136143-Mondale_watch.php">Mondale watch</a></li>
<li class="circle"><a href="/article/136144-Those_70s_clearances.php">Those 70s clearances</a></li>
<li class="circle"><a href="/article/136145-Oscar_goes_to_ABC.php">Oscar goes to ABC</a></li>
<li class="circle"><a href="/article/136146-Hearst_Argyle_gives_a_green_light.php">Hearst-Argyle gives a green light</a></li>
<li class="circle"><a href="/article/136147-Finding_Geena_Davis.php">Finding Geena Davis</a></li>
<li class="circle"><a href="/article/136148-Syndication_Wrap_up.php">Syndication Wrap-up</a></li>
<li class="circle"><a href="/article/136149-CBS_TV_news_pioneer_dies_at_86.php">CBS TV news pioneer dies at 86</a></li>
<li class="circle"><a href="/article/136150-New_York_anchor_remembered.php">New York anchor remembered</a></li>
<li class="circle"><a href="/article/136151-News_sharing_in_West_Virginia.php">News sharing in West Virginia</a></li>
<li class="circle"><a href="/article/136152-News_dropping_in_Orlando.php">News dropping in Orlando</a></li>
<li class="subsection">Null</li>
<li class="circle"><a href="/article/136141-GET_WITH_THE_PROGRAM.php">GET WITH THE PROGRAM</a></li>
<li class="subsection">PEOPLE'S CHOICE</li>
<li class="circle"><a href="/article/97423-Syndication_as_branding.php">Syndication as branding</a></li>
</ul>
</ul>

现在我想单独章节和小节,并得到内部小节中的URL。
我必须去的每一个部分。

Now i want to seperate sections and subsections and get the url inside subsections. i have go to the each sections

现在按HTML结构,部分是单独的李开款前一个关闭,所以一旦我已经达到了节,我要搬回UL然后还要继续得到第

Now as per the HTML structure, section is in seperate li which closes before subsection opens, so once i have reached section, i have to move back to ul and then have to continue to get subsection

然而,当我尝试 ../ 来回到UL(一节之前),它说 ivalid令牌

However when i try ../ to go back to the ul (the one before section), it says ivalid token

这是我想回来父之一。

HtmlNodeCollection sections = doc.DocumentNode.SelectNodes("//ul/li[@class='section'][contains(text(), 'BROADCASTING')]../ul");

但这并不作品

谁能告诉我在哪里,我错了,这将是一种帮助。

Can anyone tell me where i am going wrong, it will be a kind help.

推荐答案

您需要更改您的XPath的前pression了一下:

You need to change your xpath expression a bit:

var subsections = doc.DocumentNode.SelectNodes("//ul/ul[preceding-sibling::li[@class='section' and .='BROADCASTING']]/li[@class='subsection']");

它搜索&LT; UL&GT; &LT; UL&GT; &LT ;李班=部分&GT;广播和LT; /李&GT; 为previous兄弟姐妹,然后搜索&LT;李班=小节&GT; 里面。

It searches for <ul> inside <ul> that has <li class="section">BROADCASTING</li> as a previous sibling, and then searches for <li class="subsection"> inside it.

所以上面的code选择所有在广播部分。

So the code above selects all the subsections under BROADCASTING section.

希望这有助于。

这篇关于穿越回了XPath父节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆