c#xml.DocumentElement用于每个标记

时间:2015-06-23 13:44:21

标签: c# xml for-loop tags each

我正在尝试让我的c#读取每个标记和值,并试图解决这个问题 这是我的XML数据

<?xml version="1.0" encoding="utf-8"?>
<Word1>Trying</Word1>
<Word2>To</Word2>
<Word3>Learn</Word3>

我希望输出像这样

Word1 => Trying
Word2 => To
Word3 => Learn

在c#

中实现这一目标的任何帮助

2 个答案:

答案 0 :(得分:0)

这不是有效的XML。您只能在XML文档中有一个根元素。

所以输入应该是这样的:

<?xml version="1.0" encoding="utf-8"?>
<Words>
  <Word1>Trying</Word1>
  <Word2>To</Word2>
  <Word3>Learn</Word3>
</Words>

你可以在C#中以很多方式解析它。两种常见的方法是使用XmlDocument或使用XDocument来自&#34; LINQ to XML&#34;然后循环遍历每个元素或通过名称或XPath读取它们。这是一个相当广泛的主题,但我想你只是被困在这里,因为你想拥有多个根元素(这也是不可能的)。

答案 1 :(得分:0)

试试这个

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;


namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            string input =
             "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
             "<Root>" +
                "<Word1>Trying</Word1>" +
                "<Word2>To</Word2>" +
                "<Word3>Learn</Word3>" +
             "</Root>";

            XDocument doc = XDocument.Parse(input);

            var results = doc.Descendants("Root").Select(x => new {
                word1 = x.Element("Word1").Value,
                word2 = x.Element("Word2").Value,
                word3 = x.Element("Word3").Value
            }).FirstOrDefault();
        }
    }
}
​