我正在尝试从我的机器加载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,不能包含在名称中”
答案 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