Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/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# 如何将XML中所有元素的值放入数组中?_C#_Arrays_Xml - Fatal编程技术网

C# 如何将XML中所有元素的值放入数组中?

C# 如何将XML中所有元素的值放入数组中?,c#,arrays,xml,C#,Arrays,Xml,例如: 我有以下XML <?xml version="1.0" encoding="utf-8"?> <TEST> <Name>TESTRUN</Name> <SyncByte>ff</SyncByte> <SOM>53</SOM> <PDADD>7e</PDADD> <LENLSB>08</LENLSB> </Test> 试运行 ff

例如:

我有以下XML

<?xml version="1.0" encoding="utf-8"?>
<TEST>
<Name>TESTRUN</Name>
<SyncByte>ff</SyncByte>
<SOM>53</SOM>
<PDADD>7e</PDADD>
<LENLSB>08</LENLSB>
</Test>

试运行
ff
53
7e
08
我想把标签“SyncByte”、“SOM”、“PADD”和“LENLSB”中的值放到一个数组中。XML中是否有实现这一点的选项

另外,XML中有将近20多个标记,并非所有标记都始终包含值。因此,如果只有一个命令来获取XML的所有值,那就太好了

使用Linq到Xml:

    var xml = @"<?xml version=""1.0"" encoding=""utf-8""?>
    <Test>
        <Name>TESTRUN</Name>
        <SyncByte>ff</SyncByte>
        <SOM>53</SOM>
        <PDADD>7e</PDADD>
        <LENLSB>08</LENLSB>
    </Test>";

    var doc = XDocument.Parse(xml);
    string[] values = doc.Root.Descendants().Select(x => x.Value).ToArray();
var xml=@”
试运行
ff
53
7e
08
";
var doc=XDocument.Parse(xml);
string[]values=doc.Root.subjections().Select(x=>x.Value.ToArray();
首先: 您的xml格式错误,应该是:

<?xml version="1.0" encoding="utf-8"?>
<TEST>
<Name>TESTRUN</Name>
<SyncByte>ff</SyncByte>
<SOM>53</SOM>
<PDADD>7e</PDADD>
<LENLSB>08</LENLSB>
</TEST> <!--END Tag should same as TEST -->

您可以通过“XmlElement.ChildNodes”获取任何父节点的子节点,并将其存储在集合中

例如:

static int Main(string[] args)
        {
            string strFilename = "Input.xml";
            XmlDocument xmlDoc = new XmlDocument();

            if (File.Exists(strFilename))
            {
                xmlDoc.Load(strFilename);
                XmlElement elm = xmlDoc.DocumentElement;
                XmlNodeList lstVideos = elm.ChildNodes;

                for (int i = 0; i < lstVideos.Count; i++)
                    Console.WriteLine("{0}",lstVideos[i].InnerText );
            }
            else
                Console.WriteLine("The file {0} could not be located",
                                  strFilename);

            Console.WriteLine();
            return 0;
        }
static int Main(字符串[]args)
{
字符串strFilename=“Input.xml”;
XmlDocument xmlDoc=新的XmlDocument();
if(File.Exists(strFilename))
{
加载(strFilename);
xmlement elm=xmlDoc.DocumentElement;
XmlNodeList lstVideos=elm.ChildNodes;
对于(int i=0;i
展示您迄今为止所做的工作?
static int Main(string[] args)
        {
            string strFilename = "Input.xml";
            XmlDocument xmlDoc = new XmlDocument();

            if (File.Exists(strFilename))
            {
                xmlDoc.Load(strFilename);
                XmlElement elm = xmlDoc.DocumentElement;
                XmlNodeList lstVideos = elm.ChildNodes;

                for (int i = 0; i < lstVideos.Count; i++)
                    Console.WriteLine("{0}",lstVideos[i].InnerText );
            }
            else
                Console.WriteLine("The file {0} could not be located",
                                  strFilename);

            Console.WriteLine();
            return 0;
        }