ReadContentAs的XmlElement等效项

时间:2014-03-04 12:04:26

标签: c# xmldocument xmlreader

我正在尝试将我使用的XmlReader更改为XmlDocument,但似乎并不存在某些方法。我正在寻找XmlReader.ReadContentAsXmlReader.ReadElementContentAs的等价物。

Type myType;

if(myType == typeof(Boolean) || myType == typeof(Double))
{
    object myvalue = _cReader.ReadElementContentAs(myType, null);
}

// should become:
if(myType == typeof(Boolean) || myType == typeof(Double))
{
    object myvalue = xmlElement.ParseAnything(myType);
}

我不只是使用Boolean执行此操作,但可以通过这种方式读取多种类型。可能myType也是SingleDouble

2 个答案:

答案 0 :(得分:0)

我更改了XmlReader - 为什么不将它更改为XDocument(这比XmlDocument简单得多)。

关于你的问题,如果我理解你,你只需要Value属性

答案 1 :(得分:0)

只需将XmlElement.InnerText属性解析为特定类型:

bool mybool = Boolean.Parse(myXmlElement.InnerText);

更新:

您可以使用Convert.ChangeType()方法将字符串从Xml解析为给定的Type变量:

Type myType;
if(myType == typeof(Boolean) || myType == typeof(Double))
{
    object myvalue = Convert.ChangeType(xmlElement.InnerText, myType);
}