我的xml文件看起来像这样:...我想使用LINQ查询创建一个列表。varqueryKnowledge=(fromitemin_Document.Descendants("Knowledge").Elements("Group")selectnew{Group=(string)item.Attribute("name"),Name=(string)item.Element("Item").Attribute("name"),Level=(string)item.Element("Item").Attribute("level")}).AsQueryable();但我得到了两个项目的列表
我无法在XmlNodeList上使用Any()。我还使用了System.Linq和System.Xml.Linq命名空间。但我仍然没有在XmlNodeList上找到任何此类扩展方法。我该如何使用它?? 最佳答案 问题是XmlNodeList只实现IEnumerable,不是IEnumerable.在其上使用LINQ的最简单方法是调用Cast:varquery=nodeList.Cast().Where(...)...;或者,放弃旧的XMLAPI并使用LINQtoXML,这通常是一个更好的API并且非常好地支持LINQ:)
我在xquery中使用了一些dateTime函数,我注意到xquery接受时区为-14小时的日期。查看维基百科link我可以看到允许的最小时区是-12H,但是xpathfunctions似乎允许-14H。我错过了什么吗? 最佳答案 世界各地的时区虽然+/-12小时(换句话说:一天)足以跨越整个世界,但仍有理由进一步偏离。一个很好的例子是+13h的汤加和萨摩亚,实际上位于西Howland和BakerIsland有-12h。这是有道理的:豪兰岛和贝克岛隶属于美国(在西岸有-8h),而对于汤加和萨摩亚来说,与澳大利亚和新西兰的贸易更为重要
我有完全像这种格式的XML:Thisisverse1Thisisverse2Thisisverse3Thisisverse4Thisisverse1Thisisverse2Thisisverse1在使用Linq的C#中,我需要能够根据函数state.getChapterNumber()的值获取特定位置或索引的XML元素。例如,如果值为4,我需要从XML文档中获取第4章元素。XDocumentbook=XDocument.Load(string.Format("Translations/NWT/{0}.xml",state.BookName));varverses=fromchapter
我有一个类:publicclassLayout{publicintWidth{get;set;}publicintHeight{get;set;}}如何在以下LINQ查询中读取XML属性并将其分配给上面类中的int:varlayouts=fromeleminlayoutSummary.Descendants("Layout")selectnewLayout{//Width=elem.Attribute("Width").Value,//Invalidcaststringtoint)//Int32.TryParse((string)elem.Attribute("Height").Val
我有以下XMLfalsetruepassw0r!d83truepassw0r!d83true在c#中使用linq我试图使用以下代码获取所有用户名(上面示例中的Admin和JimBob)ListResult=newList();XDocumentxdoc=XDocument.Load("ErrorServerConfig.xml");//Runqueryvarlv1s=fromlv1inxdoc.Descendants("ErrorServer")selectnew{Children=lv1.Elements("Users")};//Loopthroughresultsforeach(v
我是创建模式的新手,几乎是创建XML的新手。我正在尝试开发一种简单的基于整数的类型(尽管我会满足于基于字符串的类型),它将值限制为-1,然后甚至是254以内的整数。到目前为止我已经想通了:该代码当然不处理将值>-1限制为偶数。我考虑过创建一个枚举,但对于如此多的值来说这似乎很笨拙。我怎样才能达到所需的限制? 最佳答案 当然,使用断言的XSD1.1机制更清晰。在XSD1.0中,以这种方式限制整数的唯一方法是使用模式方面,正如@kjhughes所建议的那样。但是,您可以对整数使用模式,它们不仅仅适用于字符串。我想我会这样做:这里大部分繁
我正在尝试解析来自YouTubeAPI的结果。我以字符串形式正确获取结果,但无法正确解析它。我遵循了上一个线程中的建议,但没有得到任何结果。我的示例代码是:stringresponse=youtubeService.GetSearchResults(search.Term,"published",1,50);XDocumentxDoc=XDocument.Parse(response,LoadOptions.SetLineInfo);varlist=xDoc.Descendants("entry").ToList();varentries=fromentryinxDoc.Descend
我想做这样的事情。我知道这是错误的:vara=fromhinxdoc.Root.Elements()whereh.Element().valuelike="1234"selecth; 最佳答案 vara=fromhinxdoc.Root.Elements()whereh.Element.value.Contains("1234")selecth这将在后台生成“LIKE”语句。 关于xml-我如何在linqtoxml中使用"like",我们在StackOverflow上找到一个类似的问题:
我只想检查我的XML文件中是否存在某个元素。该元素有几层深。下面的代码工作正常,但这是我能想到的最短的语法。谁能想出一种方法来更流畅地执行此操作而不诉诸经典的XPath语法?//createsimplesamplexmlXDocumentdoc=newXDocument(newXDeclaration("1.0","utf-8","yes"),newXElement("Bookstore",newXAttribute("Name","MyBookstore"),newXElement("Books",newXElement("Book",newXAttribute("Title","M