【问题标题】:check if xmlReader is concrete end element检查 xmlReader 是否是具体的结束元素
【发布时间】:2014-05-18 19:07:17
【问题描述】:

我已经设置了 xmlReader 并且可以检查某些元素,但是我找不到检查结束元素的方法,可以说我想为 </perls> 标签添加另一个 case 语句,除了它的开头一个,我怎么能这样做?我确定这样的标签不会自动关闭。

using (XmlReader reader = XmlReader.Create("perls.xml"))
{
    while (reader.Read())
    {
    // Only detect start elements.
    if (reader.IsStartElement())
    {
        // Get element name and switch on it.
        switch (reader.Name)
        {
        case "perls":
            // Detect this element.
            Console.WriteLine("Start <perls> element.");
            break;
        case "article":
            // Detect this article element.
            Console.WriteLine("Start <article> element.");
            // Search for the attribute name on this current node.
            string attribute = reader["name"];
            if (attribute != null)
            {
            Console.WriteLine("  Has attribute name: " + attribute);
            }
            // Next read will contain text.
            if (reader.Read())
            {
            Console.WriteLine("  Text node: " + reader.Value.Trim());
            }
            break;
        }
    }
    }
}

【问题讨论】:

    标签: c# xml xmlreader


    【解决方案1】:

    简单地检查NodeType 是否等于XmlNodeType.EndElement,例如:

    if (reader.NodeType == XmlNodeType.EndElement)
    {
        ....
    }
    

    供参考:http://www.codingeverything.com/2013/05/extending-xmlreader-class-isendelement.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-14
      • 2012-03-18
      • 2020-07-09
      • 2021-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-05
      相关资源
      最近更新 更多