gpt4 book ai didi

c# - 通过 linq to xml 中的属性获取节点

转载 作者:行者123 更新时间:2023-11-30 22:25:21 25 4
gpt4 key购买 nike

考虑这个 HTML:

<table>
<tr>
<td width="45%" align="right">
<h2>1.00 NZD</h2>
</td>
<td valign="top" align="center">
<h2>=</h2>
</td>
<td width="45%" align="left">
<h2>0.415528 GBP</h2>
</td>
</tr>
</table>

我将此代码用作字符串并将其转换为 XML 文件:

string raw = "<table><tr><td width=\"45%\" align=\"right\"><h2>1.00 NZD</h2></td><td valign=\"top\" align=\"center\"><h2>=</h2></td><td width=\"45%\" align=\"left\"> <h2>0.415528 GBP</h2> </td></tr></table>";

XElement info = XElement.Parse(raw);

现在我想获取所有具有 align="right" 的 td 并编写此代码:

var elementToChange = (from c in info.Elements("td")
where c.Attribute("align").Value == "right"
select c);


Label1.Text = Server.HtmlEncode(elementToChange.First().ToString());

但我得到这个错误:

Sequence contains no elements

问题出在哪里?

谢谢

最佳答案

您寻找 "td" 元素,但在节点的顶层您只找到一个 "tr" 元素。这就是为什么你没有得到任何元素。试试这个:

from c in info.Elements("tr").Elements("td")

此外,您应该在调用 First() 之前检查序列中是否有任何元素(或者使用 FirstOrDefault(),如果没有元素则返回 null) .

如果您不知道路径并且只想要所有具有该标记值的 "td" 元素,您也可以使用 Descendants扩展方法:

from c in info.Descendants("td")

关于c# - 通过 linq to xml 中的属性获取节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12363958/

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