[英]HtmlNode Get inner text from nested span
I am trying to get information from a html segment, it is all going well however I am struggling to return the value of the Trade in
value.我正在尝试从 html 段获取信息,一切顺利,但是我正在努力返回价值Trade in
价值。 Below is a copy of the code I have tried so far.下面是我迄今为止尝试过的代码的副本。
htmlNode.Descendants("li").Where(x => x.HasClass("trade-in-price")).Select(x => x.Descendants("span").Where(z => z.HasClass("value")).Last().InnerText);
which returns the following:它返回以下内容:
"£36.00"
Now, I don't really want to substring this value to get the cost as I don't think it is the best way to do this however I have tried every other way and i can't seem to return 'just the cost' value.现在,我真的不想用 substring 这个值来获得成本,因为我认为这不是最好的方法,但是我已经尝试了所有其他方式,我似乎无法返回“只是成本”价值。
Here is a copy of the html I am trying to navigate to get the desired value这是 html 的副本,我正在尝试导航以获得所需的值
<section
class="product-item"
itemscope="itemscope">
<div>
<div class="group">
<div>
<div class="product-image"><a
href="/trade-in-sell/call-of-duty-modern-warfare-ps4"
itemprop="url"
><span><img
width="160"
height="200"
alt="Call Of Duty: Modern Warfare"
title="Show more information on Call Of Duty: Modern Warfare"
itemprop="image"
/></span></a></div>
<div class="product-categories gray">
<ul>
<li>PlayStation</li>
</ul>
</div>
<div class="product-label top-seller"><strong>modernwarfare</strong></div>
<h2 class="product-title" itemprop="name">Call Of Duty: Modern Warfare</h2>
</div>
</div>
<div class="group">
<div>
<div class="product-price">
<ul>
<li class="buy-new-price">
<Buy new</span> <span class="value"><span class="symbol l">£</span>49.99</span>
</li>
<li class="trade-in-price">
<a href="/trade-in-sell/call-of-duty-modern-warfare-ps4">
<span class="label">Trade in</span>
<span class="value">
<span class="symbol l">
£
</span>
36.00 // I want this value here
</span>
</a>
</li>
<li class="sell-price">
<a href="/trade-in-sell/call-of-duty-modern-warfare-ps4">
<span class="label">Get cash</span>
<span class="value">
<span class="symbol l">
£
</span>
32.00
</span>
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</section>
Does anyone know where abouts I am going wrong in my LINQ query?有谁知道我在 LINQ 查询中哪里出错了?
I think you can use the method GetDirectInnerText()
instead of property InnerText
.我认为您可以使用方法GetDirectInnerText()
而不是属性InnerText
。 For me it returns only text of node itself without childs.对我来说,它只返回节点本身的文本,没有子节点。
htmlNode.Descendants("li").Where(x => x.HasClass("trade-in-price")).Select(x => x.Descendants("span").Where(z => z.HasClass("value")).Last().GetDirectInnerText());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.