1

我有这样的 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"),
                  });
4

1 回答 1

1

显式转换运算符为XElement返回节点的串联内部文本)重载,.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())
)
于 2013-07-04T23:00:31.987 回答