如何从XmlDocument获取Node的InnerText和InnerXml?

时间:2016-09-26 19:54:42

标签: c# xml xml-parsing xmldocument xmlnode

例如,我有这个xml字符串:

account

我希望在一个对象数组中获取所有这些元素(对于我有一个类的每个对象),而不会丢失它们的结构:

<?xml version="1.0" encoding="utf-8"?>
<data>
   <text>How to get <bold>all</bold> this string's content?</text>
</data>

我现在正在使用[1] (TextClass; where bold = false) How to get [2] (TextClass; where bold = true) all [3] (TextClass; where bold = false) this string's content? XmlDocument课程分别是InnerText或InnerXml。

XmlNode

有可能吗?

1 个答案:

答案 0 :(得分:1)

对于这类工作,我认为使用LINQ to XML更容易。

在您的示例中,以下内容可能会起作用(具体取决于您要实现的目标):

XDocument doc = XDocument.Parse(xml);
var textClasses = from n in doc.Descendants("text").DescendantNodes()
                  where n.NodeType == XmlNodeType.Text
                  select new { text = ((XText)n).Value, bold = n.Parent?.Name == "bold" };

.net fiddle,以便您快速查看结果。