2014-04-06 4 views
0

나는 다음과 같은 XML 파일이 있습니다내 요구 사항에 LINQ를 작성 실패

<?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> 

나는 조각 태그 사이에 모든 것을 추출 XML 쿼리에 LINQ 작성한 그림과 같이 :

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); 

을 그 결과는 다음과 같습니다.

<h1>Heading 1</h1> 
<h2>Heading 2</h2> 
<p>Paragraph 1</p> 

그러나 모든 것을 반환하는 쿼리를 작성하려고합니다. 그림과 같이 ID = "머리글 1"로 조각 태그 사이 g :

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에서이 쿼리를 실행할 때, 나는 다음과 같은 오류가;

Cannot execute text selection: Cannot convert type 'System.Collections.Generic.IEnumerable<System.Xml.Linq.XAttribute>' to 'string' 

누구든지 내가 뭘하고있는 실수를 지적 할 수 있습니까?

감사합니다.

답변

0

이 시도 :

var contents = 
    from content in xelement.Elements("body").Elements("fragment") 
    where content.Attribute("id").Value == "heading1" 
    select content; 

당신을 contentwhere 절에 있어야 xelement을 반복 곳.

+0

안녕하세요, 한 가지 실수를 지적 해 주셔서 감사합니다. (내 부분에는 매우 어리 석었지만(), 쿼리 결과는 다음과 같습니다.

제목 1

그러나 내가 원하는 것은 단지 :

제목 1

Anvith

+0

그것은 내가 당신에게 준 것에서 운동하기 쉽습니다. – Enigmativity

관련 문제