我正在使用VS来运行我的代码并抛出异常
未处理的类型' System.ArgumentNullException'发生在System.Xml.Linq.dll中。附加信息:值不能为空。
然而,我真的无法弄清楚它为什么会发生。参数来自命令行agrument。有人可以帮我解决问题吗?到目前为止我的代码:
public static XDocument docone;
public static XDocument doctwo;
docone = XDocument.Load(args[3]);
doctwo = XDocument.Load(args[4]);
dealWithXML (docone, doctwo, args);
public static void dealWithXML(XDocument xdoc, XDocument secondxdoc, string[] args)
{
string select = args[2];
var xseq = xdoc.XPathSelectElements(select); //exception thrown here
}
XML文件如下:
<bookstore>
<book>
<barcode>10000</barcode>
<author> Ben </author>
</book>
<book>
<barcode>200000</barcode>
<author>Tom </author>
</book>
</bookstore>
我使用Linqpad转储xseq并且它有效。我很困惑为什么。
答案 0 :(得分:0)
假设args[3] = "path to xml" and args[2] = "bookstore/book"
var xdoc = XDocument.Load(args[3]);
var parsedXml = x.XPathSelectElements(args[2]);
foreach (XElement e in parsedXml)
{
Console.WriteLine(((XElement)e.FirstNode).Value);
Console.WriteLine(((XElement)e.LastNode).Value);
}