我有这样的XML
<component>
<section>
<title>Reporting Parameters</title>
<text>
<list>
<item>Reporting period: January 1st, 2012
</list>
</text>
</section>
</component>
我想选择包含等元素的节点的全部内容但是它只选择纯文本“报告期:2012年1月1日”,原因是它可能包含我需要存储在数据库中的一些HTML标记,我是使用以下查询
var components = (from c in cdafile.Root.Elements(ns + "component")
select new{
name = (string)c.Element(ns + "section").Element(ns + "title").Value,
text = (string)c.Element(ns + "section").Element(ns + "text"),
});
答案 0 :(得分:1)
为XElement
(to return concatenated, inner text of nodes)重载显式强制转换操作符,使用.ToString()
获取节点内容:
text = c.Element(ns + "section").Element(ns + "text").ToString()
并且仅为儿童标记 :
text = string.Join(Environment.NewLine, c
.Element(ns + "section").Element(ns + "text")
.Elements().Select(e => e.ToString())
)