在 C# 中使用 XElement 获取 XML 的元素节点值

Posted

技术标签:

【中文标题】在 C# 中使用 XElement 获取 XML 的元素节点值【英文标题】:Get Element Node Value of XML using XElement in C# 【发布时间】:2012-12-12 14:19:54 【问题描述】:

我保存了以下 XML 文件:

<E:Events xmlns:E="Event-Details">
   <Date>12/27/2012</Date>
   <Time>‎11:12 PM</Time>
   <Message>Happy Birthday</Message>
</E:Events>

我正在使用XElement 来加载上述 XML 文件。 我想获取 Date, Time and Message 的元素值,即 2012 年 12 月 27 日,下午 11:12 和 Happy Birthday。 如何检索这些值。 我对此进行了很多搜索,但找不到任何东西。

任何帮助表示赞赏...

【问题讨论】:

【参考方案1】:

您是否尝试过从 XElement 节点获取元素?

XElement.Element("");

将返回您需要的节点。

试试下面的代码:

string text = "<E:Events xmlns:E=\"Event-Details\"><Date>12/27/2012</Date><Time>‎11:12 PM</Time><Message>Happy Birthday</Message></E:Events>";
XElement myEle = XElement.Parse(text);
Console.WriteLine(myEle.Element("Date").Value);
Console.WriteLine(myEle.Element("Time").Value);
Console.WriteLine(myEle.Element("Message").Value);

【讨论】:

谢谢,我可以检索这些值,但现在我又面临一个问题。我有一个 MainPage.xaml UI,我尝试在 UI 上分配这些检索到的值,例如txtMessage = myEle.Element("Message").Value;但这会引发空引用异常。知道为什么吗??.. 最好发布一个单独的问题,请在您尝试分配值的位置发布您的 xaml 和相关代码。另外,如果我的回答对您有帮助,请将其标记为答案。

以上是关于在 C# 中使用 XElement 获取 XML 的元素节点值的主要内容,如果未能解决你的问题,请参考以下文章

c# foreach 没有在循环中获取下一个 XElement 名称

在 C# Compact Framework 中加速 XML 的解析(使用 XmlTextReader 和 XElement)?

如何使用 XElement 打开 xml?

C#:如何从 XElement 中获取名称(带前缀)作为字符串?

c#如何用xelement读取xml属性

XElement 上的 XPath 列表