Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在c#.net中解析xml_C#_Xml - Fatal编程技术网

在c#.net中解析xml

在c#.net中解析xml,c#,xml,C#,Xml,我必须用C解析以下xml# 我在node.Attributes.GetNamedItem(“PackageName”).value处遇到了类似“Object reference not set to a instance of a Object”的错误,因为node.Attributes.GetNamedItem(“PackageName”)的值为“null”您正在查找PackageName,这是node.Attributes中的一个实例,因此我认为您永远不会获得此xml的值。这是您的问题吗?您

我必须用C解析以下xml#


我在node.Attributes.GetNamedItem(“PackageName”).value处遇到了类似“Object reference not set to a instance of a Object”的错误,因为node.Attributes.GetNamedItem(“PackageName”)的值为“null”

您正在查找PackageName,这是node.Attributes中的一个实例,因此我认为您永远不会获得此xml的值。这是您的问题吗?

您尝试执行的操作将不起作用,因为PackageName不是属性。您必须查看包的子节点。

最终得到了解决方案

XmlDocument doc = new XmlDocument();
             doc.Load(filePath);
             XmlNode PackagesListNode = doc.SelectSingleNode("/Packages");
             XmlNodeList Packages = PackagesListNode.SelectNodes("Package");
             foreach (XmlNode node in Packages)
             {
                 TableLoadInstruction instruction = new TableLoadInstruction();
                 instruction.PackageName = node.SelectSingleNode("PackageName").InnerText;
                 instruction.Sequence = Convert.ToInt16(node.SelectSingleNode("SequenceID").InnerText);
                 instruction.AlwaysRun = Convert.ToBoolean(node.SelectSingleNode("AlwaysRun").InnerText);
                 loadInstructions.Add(instruction);
             }

你的问题是什么?你应该包括你尝试过什么,遇到了什么具体问题。关于这方面有很多教程。问题是……?很多,关于从XML中提取数据的许多问题已经在这里提出并得到了回答。您应该以注释的形式而不是回答的形式提供此类回答,但是Zebra没有评论的要点,这是一个部分回答。这是一个不完整的问题。只是一个提示:查看XDocument等。要短得多,容易得多。
XmlDocument doc = new XmlDocument();
             doc.Load(filePath);
             XmlNode PackagesListNode = doc.SelectSingleNode("/Packages");
             XmlNodeList Packages = PackagesListNode.SelectNodes("Package");
             foreach (XmlNode node in Packages)
             {
                 TableLoadInstruction instruction = new TableLoadInstruction();
                 instruction.PackageName = node.Attributes.GetNamedItem("PackageName").Value;
                 instruction.Sequence = Convert.ToInt16(node.Attributes.GetNamedItem("SequenceID").Value);
                 instruction.AlwaysRun = Convert.ToBoolean(node.Attributes.GetNamedItem("AlwaysRun").Value);
                 loadInstructions.Add(instruction);
             }
XmlDocument doc = new XmlDocument();
             doc.Load(filePath);
             XmlNode PackagesListNode = doc.SelectSingleNode("/Packages");
             XmlNodeList Packages = PackagesListNode.SelectNodes("Package");
             foreach (XmlNode node in Packages)
             {
                 TableLoadInstruction instruction = new TableLoadInstruction();
                 instruction.PackageName = node.SelectSingleNode("PackageName").InnerText;
                 instruction.Sequence = Convert.ToInt16(node.SelectSingleNode("SequenceID").InnerText);
                 instruction.AlwaysRun = Convert.ToBoolean(node.SelectSingleNode("AlwaysRun").InnerText);
                 loadInstructions.Add(instruction);
             }