不久前,我在 VB.Net 中编写了一些代码,使用 XElement、XDocument 等来存储和操作 HTML。一些 HTML 使用包含连字符/破折号 (-) 的属性名称。我在使用 LinqToXml 通过这些属性搜索 XElements 时遇到了问题。
当时我发现一篇文章(现在找不到)表明 VB.net 中的解决方案是使用如下语法:
Dim rootElement as XElement = GetARootXElement()
Dim query = From p In rootElement.<div> Where p.@<data-qid> = 5 Select p
“神奇”语法是 @<>,它以某种方式将连字符的属性名称转换为 Linq 可以成功使用的格式。此代码在 VB.Net 中运行良好。
问题是我们现在已经将所有 VB.Net 代码转换为 C# 并且转换实用程序被这种语法阻塞了。我在 VB.Net 中找不到关于这种“神奇”语法的任何信息,所以我希望有人可以为我填写详细信息,特别是 C# 等价物是什么。谢谢。
这是一个例子:
<div id='stuff'>
<div id='stuff2'>
<div id='stuff' data-qid=5>
<!-- more html -->
</div>
</div>
</div>
在我上面的代码中,rootElement 将是 div 内容,我想使用属性 data-qid=5 搜索内部 div。