首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未能为我的需求编写LINQ

未能为我的需求编写LINQ
EN

Stack Overflow用户
提问于 2014-04-06 06:09:32
回答 1查看 20关注 0票数 0

我有以下xml文件:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>

<!-- New XML document created with EditiX XML Editor (http://www.editix.com) at Tue Mar 18 22:41:05 IST 2014 
-->
<html xsi:NamespaceSchemaLocation="http://www.w3.org/1999/xhtml DM_Project.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <head>
        <title>title1</title>
    </head>
    <body>
        <fragment name="heading" id="heading1">
            <h1>Heading 1</h1>
        </fragment>
        <fragment name="heading" id="heading2">
            <h2>Heading 2</h2>
        </fragment>
        <fragment name="paragraph" id="paragraph1">
            <p>Paragraph 1</p>
        </fragment>

    </body>
</html>

我编写了一个LINQ查询,该查询提取片段标记之间的所有内容,如下所示:

代码语言:javascript
复制
XElement xelement = XElement.Load("C:\\Users\\Administrator\\Desktop\\DM_Project.xml");
var contents =
            from content in xelement.Elements("body").Elements("fragment").Descendants()
            select content;
            Console.WriteLine(contents);

其产出如预期的那样:

代码语言:javascript
复制
<h1>Heading 1</h1> 
<h2>Heading 2</h2> 
<p>Paragraph 1</p> 

但是,我正在尝试编写一个查询,该查询将返回带有id="heading1“的片段标记之间的所有内容,如下所示:

代码语言:javascript
复制
XElement xelement = XElement.Load("C:\\Users\\Administrator\\Desktop\\DM_Project.xml");
var contents =
            from content in xelement.Elements("body").Elements("fragment").Descendants()
            where (string)xelement.Attributes("id") == "heading1"
            select content;
            Console.WriteLine(contents);

当我在LINQpad上运行这个查询时,会得到以下错误;

代码语言:javascript
复制
Cannot execute text selection: Cannot convert type 'System.Collections.Generic.IEnumerable<System.Xml.Linq.XAttribute>' to 'string'

有人能指出我正在做的错误吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-06 06:26:37

试试这个:

代码语言:javascript
复制
var contents =
    from content in xelement.Elements("body").Elements("fragment")
    where content.Attribute("id").Value == "heading1"
    select content;

在其中重复xelementcontent应该在where子句上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22890591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档