我有这样的代码
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>
当我尝试从summary.value
这样的摘要中获取值时,它只给出值
获取。
中包含的元素数
部分<see cref="T:System.Collections.Generic.ICollection
1&#34; /&gt;`在那个字符串中没有来。
请帮助解决此问题。
捕获调试。
更新
我尝试按照评论转义
var summary = member.Select(o => o.XPathSelectElement("summary").Value.Replace("<", "<").Replace("&", "&").Replace(">", ">"))
.FirstOrDefault();
仍然是相同的结果。可能是我做错了。
答案 0 :(得分: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()
而不是使用该集合,但这是一般的想法
答案 1 :(得分:1)
根据这个link,我创建了一个XmlReader
对象并读取内容并获取内部xml。代码是:
public static string InnerXml(this XElement self)
{
var reader = self.CreateReader();
reader.MoveToContent();
return reader.ReadInnerXml()?.Trim();
}