Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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# 如何在c中从包含字符串的XML中读取数据?_C#_Xml_Visual Studio 2010_Xml Parsing - Fatal编程技术网

C# 如何在c中从包含字符串的XML中读取数据?

C# 如何在c中从包含字符串的XML中读取数据?,c#,xml,visual-studio-2010,xml-parsing,C#,Xml,Visual Studio 2010,Xml Parsing,我在这个问题上找到了很多答案,但他们都试图先将字符串转换为文件,然后使用XmlDocument doc=newxmldocument解析它 我是c的新手。我的字符串格式为: <a header = '0'> < row dc = '123' al = '45' msg = '1-st line'/> < row dc = '678' al = '8' msg = 'second-line'/> </a> 我正在尝试编写伪代码来解析它: IF &l

我在这个问题上找到了很多答案,但他们都试图先将字符串转换为文件,然后使用XmlDocument doc=newxmldocument解析它

我是c的新手。我的字符串格式为:

<a header = '0'> < row dc = '123' al = '45' msg = '1-st line'/> < row dc = '678' al = '8' msg = 'second-line'/> </a>
我正在尝试编写伪代码来解析它:

IF <a header> == 0
Then read from the second line to last line i.e. dc = 678 , al = 8, msg = second-line
ELSE read from the first line to last line i.e.  
  dc = 123 , al = 45, msg = 1-st line
 dc = 678 , al = 8, msg = second-line

在此之后,我必须插入到数据库中。当应用上述条件时,什么是合适的解决方案?

您不必保存到文件来解析XML

var xml = "<a header='0'> <row dc='123' al='45' msg='1-st line'/> <row dc='678' al='8' msg='second-line'/> </a>";
var doc = XElement.Parse(xml);
var list = from x in doc.Descendants("row")
            select new 
            {
                dc = (int)x.Attribute("dc"),
                al = (int)x.Attribute("al"),
                msg = (string)x.Attribute("msg")
            };

这个简单的示例将为您提供一个匿名对象列表,您可以轻松地将这些对象插入数据库。

您不必保存到文件来解析XML

var xml = "<a header='0'> <row dc='123' al='45' msg='1-st line'/> <row dc='678' al='8' msg='second-line'/> </a>";
var doc = XElement.Parse(xml);
var list = from x in doc.Descendants("row")
            select new 
            {
                dc = (int)x.Attribute("dc"),
                al = (int)x.Attribute("al"),
                msg = (string)x.Attribute("msg")
            };
这个简单的示例将为您提供一个匿名对象列表,您可以轻松地将其插入数据库。

入门代码:

   XmlNode xmlNode = doc.SelectNode("/a");
   int value = xmlNode.Attributes["header"].Value;
   XmlNodes xmlNodes = xmlNode.SelectNodes("./row");
   foreach (XmlNode rowNode in XmlNodes)
入门代码:

   XmlNode xmlNode = doc.SelectNode("/a");
   int value = xmlNode.Attributes["header"].Value;
   XmlNodes xmlNodes = xmlNode.SelectNodes("./row");
   foreach (XmlNode rowNode in XmlNodes)

您是否考虑过使用LINQtoXML来执行此功能?查看查询部分,我发现LINQtoXML是当今处理XML的一种更简单的方法。此外,XML文件中没有行,因此您应该停止尝试将它们视为存在。您是否考虑过使用Linq to XML来执行此功能?查看查询部分,我发现LINQtoXML是当今处理XML的一种更简单的方法。此外,XML文件中没有行,因此您应该停止尝试将它们视为存在。我强烈支持使用Linq to XMLI强烈支持使用Linq to XML