XML Elements属性值是否始终是字符串的数据类型?

时间:2014-10-15 09:41:10

标签: c# xml linq xelement xattribute

当我使用LINQ创建XML文档时,当我使用一些属性向Root元素添加一些XElement时,当我使用LINQ读取该文档的XElement时,XAttributes.Value的返回值默认为字符串!
为了将此值赋给bool类型的变量,有必要调用function" 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);
  ...

如你所见:
XAttribute的值称为" Name"必须是一个长型! XAttribute的值称为" IsEvenNumber"必须是bool型!

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

1 个答案:

答案 0 :(得分:2)

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

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

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