是XML元素属性值始终是字符串的数据类型

本文关键字:字符串 数据类型 XML 元素 属性 | 更新日期: 2023-09-27 18:26:31

当我使用LINQ创建XML文档时,当我将一些XElement添加到具有一些Attributes的Root元素时,以及当我使用LINQ读取该文档的XElement时,XAttributes的返回值。默认值为字符串
为了将此值分配给布尔类型的变量,有必要调用函数"Convert.ToBoolean()"

  XDocument Xd = new XDocument(new XElement("Numbers"));
  Xd.Root.Add(new XElement("13", new XAttribute("Name", "13")
                               , new XAttribute("IsEvenNumber", false)
                               , new XAttribute("HowManyDevidersItHas", 2)));
  Xd.Save(@"C:'XDocument.xml");
  bool b1 = Convert.ToBoolean(XD1.Root.Element("13").Attribute("IsEvenNumber").Value);
  ...

如您所见:
名为"Name"的XAttribute的值必须是长类型
名为"IsEvenNumber"的XAttribute的值必须是布尔类型!

我需要知道:是否可以创建一个带有一些XAttributes的XElement,保存它,再次读取它,并将其XAttributes.Value分配给某个bool类型的变量,而不调用"Convert.ToBoolean()"函数?!

是XML元素属性值始终是字符串的数据类型

遗憾的是,XElement.Value属性似乎是一个字符串。

http://msdn.microsoft.com/en-us/library/system.xml.linq.xelement.value(v=vs.90).aspx

因此,您将始终必须将值强制转换为您的数据类型。