是否有更好的方法来获取XmlReader NodeType属性?

本文关键字:XmlReader NodeType 属性 获取 更好 方法 是否 | 更新日期: 2023-09-27 18:06:12

基于此,看起来每次我想要获得一个节点元素名称,或一个文本值或任何东西时,我都需要使用switch-case。

那么我一定要这样写吗:

while (reader.Read())
{
    switch (reader.NodeType)
    {
        case XmlNodeType.Element:
        nodeName = reader.Name;
        break;
    }
}

或者我错过了什么,它可以做得更短,更优雅(我需要使用XmlReader,而不是在位置上使用LINQ到XML)?为了得到这些小块的信息而到处使用这些乱七八糟的开关箱的想法对我来说不是很有吸引力。谢谢你。

是否有更好的方法来获取XmlReader NodeType属性?

没有进行强制转换,因此就我所见,您可以直接执行:

while(reader.Read())
{
    nodeName = reader.Name;
}

我相信节点至少总是有一个名称,虽然我可能是错的,但我想他们确实有。

关于Switch案例的一点是,它非常清楚地表明了您的意图,我认为这在现代编程中是很重要的。

然而,如果你厌倦了一直写它,我不怪你,把它包装在一个扩展方法中怎么样?