在xdocument中提取节点的值时发生异常

时间:2013-08-26 05:54:52

标签: c# linq-to-xml

我有一个xml,如:

<RunResult>
  <PreviewRecords></PreviewRecords>
  <RecordsProcessed>100</RecordsProcessed>
  <LogError>false</LogError>
</RunResult>

我使用以下命令来获取节点RecordsProcessed的值,

int NofRecords = 0;
NofRecords = Convert.ToInt32(xdRunResultDoc.Root.Element("RunResult").Element("RecordsProcessed").Value;

但是在这一行它抛出异常“对象引用未设置为对象的实例”。

请建议我出错的地方。

5 个答案:

答案 0 :(得分:2)

xdRunResultDoc.Root已指向<RunRdesult>元素,因此您无需再次致电Element("RunResult")

我建议在(int)而不是XElement上使用Convert.ToInt32广告投放:XElement Explicit Conversion (XElement to Int32)

int NofRecords = (int)xdRunResultDoc.Root.Element("RecordsProcessed");

答案 1 :(得分:0)

试试这个

int NofRcord = Convert.ToInt32(xdRunResultDoc.Root.Element("RecordsProcessed").Value);

有关详情http://msdn.microsoft.com/en-us/library/bb675196.aspx

,请参阅此链接

答案 2 :(得分:0)

这对我有用:

string xmlstring = @"<?xml version='1.0' encoding='utf-8'?>
    <RunResult>
        <PreviewRecords></PreviewRecords>
        <RecordsProcessed>100</RecordsProcessed>
        <LogError>false</LogError>
    </RunResult>";

System.Xml.Linq.XDocument doc = XDocument.Parse(xmlstring);

int NofRecords = 0;

NofRecords = Convert.ToInt32(doc.Element("RunResult").Element("RecordsProcessed").Value);

答案 3 :(得分:0)

您可以自己找到解决方案,为什么不调试并查看导致“对象引用未设置为对象实例的错误?

您可以将监视添加到xdRunResultDoc,在运行时可以检查根节点是什么以及xdRunResultDoc.Root.Element("RunResult")等获得的内容。

此处您的根节点为RunResult,您无法在名为RunResult的根节点内找到元素

You better check this code project tutorial.

答案 4 :(得分:0)

试试此代码

从xml文件中读取整个文本并将其加载到XmlDocument

XmlNode rootNode = xDoc.SelectSingleNode("RunResult");
                            if (rootNode.HasChildNodes)
                            {
                                foreach (XmlNode node in rootNode.ChildNodes)
                                {
                                    if (node.Name =="RecordsProcessed")
                                    {

                                        NofRecords=Convert.ToInt32(node.InnerText);
                                    }
                                }
                            }
相关问题