C# 如何将XML中所有元素的值放入数组中?
例如: 我有以下XMLC# 如何将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 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;
}