2016-08-01 2 views
-2

나는이어떻게이

var summary = member.Select(o => o.Element("summary")) 
       .FirstOrDefault(); 

같은 코드를 가지고에 난에서 값을 얻을 때 '<'이

<summary> 
    Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />. 
</summary> 

같은 값을 제공 XML 노드 값을 액세서하기 요약 같은 summary.value 그것은 단지 값을 제공합니다

에 포함 된 요소의 수를 가져옵니다.

부분 <see cref="T:System.Collections.Generic.ICollection 1 "/> '해당 문자열에 올 수 없습니다.이 문제를 해결에

도와주세요.

가 디버깅을 캡처.

Capture on debugging for reference

Summary value

UPDATE

나는

 var summary = member.Select(o => o.XPathSelectElement("summary").Value.Replace("&lt;", "<").Replace("&amp;", "&").Replace("&gt;", ">")) 
      .FirstOrDefault(); 

여전히 같은 결과 코멘트

에 따라 탈출했습니다. 나는 뭔가 잘못하고있을 수 있습니다.

+3

은 당신이 '사전에'<으로 값을 탈출해야한다'<'와'>'에 대한'>'내가이 질문을 향상시킬 수있는 방법'및' – Icepickle

+0

에 대한'&'. 다운 유권자는 제발 제안하십시오. – shanmugharaj

+0

당신은 당신의 XML이 어떻게 만들어 졌는지, 그리고 XML 내용이 이미 이스케이프되어 있는지를 나타낼 수 있습니다. (문제가있는 파일에 잘못된 XML이있는 경우 xml 뷰어 대신 메모장을 사용하여 확인할 수 있습니다. '<') – Icepickle

답변

1

내가 만든이 link 당 그대로 수 없습니다 XmlReader 개체를 읽고 내용을 읽고 내부 XML을 가져옵니다. 코드는 다음과 같습니다

public static string InnerXml(this XElement self) 
{ 
    var reader = self.CreateReader(); 
    reader.MoveToContent(); 

    return reader.ReadInnerXml()?.Trim(); 
} 
2

XDocument이 중첩 요소로 인식하고 있기 때문에 그러한 이유가 있습니다. 그 요소를 일반 텍스트로 변환해야합니다.

뭔가 같은 : 분명히

var element = document.Element("summary"); 
var value = element.Value; 

value += string.Join(", ", document.Element("summary") 
            .Descendants() 
            .Where(x => x.NodeType == System.Xml.XmlNodeType.Element 
            .Select(x => x.ToString())); 

당신은 .Descendants()을 사용하고 .Element()를 사용하거나 대신 수집 작업의 .FirstOrDefault()를 추가 할 수 있지만 이것은 일반적인 생각

+0

답장을 보내 주셔서 감사합니다. – shanmugharaj

+0

@shansfk - 해결 했습니까? :) –

+0

har07이 제안한 [이 링크] (http://stackoverflow.com/questions/3793/best-way-to-get-innerxml-of-an-xelement).그게 나를 위해 일한 – shanmugharaj