如何使用XElement打开xml?

时间:2016-06-03 06:56:57

标签: c# xml

我正在尝试从我的机​​器加载metadata.xml文件,但是它会出现错误,如

  

':'字符,十六进制值0x3A,不能包含在名称中。

请让我帮助找到使用XElement加载xml的正确方法。

C#代码

private static void xmlProcess()
        {

            string filePath = @"D:\metadata.xml";
            if (System.IO.File.Exists(filePath))
            {

                // load xml file from destination folder
                XElement document = new XElement(filePath);

                var country = "IN";
                var curProduct = document.Elements("country").Where(t => t.Value == country).FirstOrDefault().Parent;

            }
        }

XML文件(metadata.xml)

<root version="mech5.2">
  <language>en-US</language>
  <provider>Provider1</provider>
  <data>
    <title>Engine1</title>
    <vendor_id>ABC</vendor_id>
    <products>
      <product>
        <country>IN</country>
        <times>
          <time>
            <start_date>2017-01-15</start_date>
            <end_date>2017-09-15</end_date>
          </time>
        </times>
      </product>
    </products>
  </data>
</root>

为什么我收到此错误:“':'字符,十六进制值0x3A,不能包含在名称中”

2 个答案:

答案 0 :(得分:2)

您只需使用XElement.Load()从XML文件创建并填充XElement

XElement document = XElement.Load(filePath);

答案 1 :(得分:1)

问题是你正在尝试使用错误形式的构造函数。 XElement正在尝试将您的文件路径字符串转换为实例名称,这显然无效。试试这个。

XElement x = new XElement();
x.Load(filePath);

PS。仔细检查您正在使用的构造函数的声明 https://msdn.microsoft.com/en-us/library/bb292758(v=vs.110).aspx