在 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)?