不久前我在VB.Net中编写了一些代码,使用了XElement、XDocument等。。。存储和操作HTML。一些HTML使用了包含连字符/短划线(--)的属性名。我在使用LinqToXml按这些属性搜索像素时遇到问题。当时我发现一篇文章(现在找不到)指出VB.net中的解决方案是使用如下语法:Dim rootElement as XElement = GetARootXElement()Dim query = From p In rootElement.<div> Where p.@<data-qid> = 5 Select p“magic”语法是@以某种方式将连字符的属性名转换为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上面是stuff div,我想用attributedataqid=5搜索内部div。 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 我可以用C#-我认为它相当于原始VB(注意,原始VB的选项Strict Off):XElement rootElement = GetARootXElement();var query = from p in rootElement.Elements("div") where p.Attribute("data-qid").Value == 5.ToString() select p;下面是我的(修订版)测试,它找到具有“data qid”属性的div:var xml = System.Xml.Linq.XElement.Parse("<div id='stuff'><div id='stuff2'><div id='stuff3' data-qid='5'><!-- more html --></div></div></div>");var rootElement = xml.Element("div");var query = from p in rootElement.Elements("div") where p.Attribute("data-qid").Value == 5.ToString() select p; (adsbygoogle = window.adsbygoogle || []).push({});
08-06 05:48
查看更多