gpt4 book ai didi

c# - XPath 查询不起作用

转载 作者:行者123 更新时间:2023-12-02 14:44:36 25 4
gpt4 key购买 nike

你好,我制作 HttpWebResponse 并获取包含我需要的所有数据的 HtmlPage,例如带有日期信息的表格,我需要将它们保存到数组列表并将其保存到 xml 文件

html 页面示例

<tbody>
<tr class="odd">
<tr class="even">
<td class="padding5 sorting_1">
<span class="DateHover" sort="14/03/18/22/56" title="18.03.14" ref="18.03.14">18.03.14</span>
</td>
<td class="CellStyleDefaultText">
<span class="transSpan">Info</span>
</td>
<td class="CellStyleDefaultText" title="UserNumber123">UserNumber123</td>
<td class="CellStyleSignedNumber floatopHomePage">
<span title="701,554.23 ">701,554.23 </span>
</td>
<td class="CellStyleAmount CellStyleAmountNew">
<div title="-3354999.71">-3354999.71</div>
</td>
<td class="CellStyleDetails CCMoreDetailsTd">
<span> 17.03.14 Info</span>
</td>
</tr>
</tbody>

好的,我得到的第一个日期时间跨度

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//span[@class='DateHover']"))

跨度信息

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//td[@class='transSpan']"))

然后我坚持要获取 UserNumber123 我这样做了

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//td[@class='CellStyleDefaultText']"))

但它也会返回我 span transSpan 因为它在 td

以及我无法获取的所有其他 td CellStyleSignedNumber、CellStyleAmount、CellStyleDetails。

有什么想法吗?

最佳答案

您可以简单地提及属性名称来选择具有特定属性集的元素。所以你可以尝试获取UserNumber123这样:

doc.DocumentNode.SelectNodes("//td[@class='CellStyleDefaultText' and @title]")

以上XPath表示,选择<td>具有 title 属性和 hass class 属性值等于“CellStyleDefaultText”的元素。

其余<td> ,尝试使用XPath contains()函数,例如:

doc.DocumentNode.SelectNodes("//td[contains(@class,'CellStyleSignedNumber')]")

更新:

如果您想获得<td>,请回复您评论的后半部分有 child 的<span>元素,您可以添加如下简单的条件:

doc.DocumentNode.SelectNodes("//td[span and contains(@class,'CellStyleSignedNumber')]")

关于c# - XPath 查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23055218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com