C#XML解析:如何区分自闭标签和其他标签?

时间:2013-08-20 17:37:48

标签: c# xml-parsing

我正在使用ASP.NET C#中的“XmlTextReader”对象来读取xml文件。 在我的代码中,我真的需要区分自结束标签,如

<img src="something" />

以及内部有元素且需要结束标记的内容,如:

<div class="anything">
    <img src="something" />
</div>

我已经尝试过HasValue方法,但它对我来说效果不佳。有没有其他方法可以检测到通过元素读取之前的真实性?

我可以使用ReadElementContentAsString()方法,但我真的不想这样做。在进去之前我需要知道里面是否有东西。或者至少能够回去。

更新 这就是我正在阅读我的代码的方式

        reader.MoveToAttribute("id"); //I know all attributes
    if (reader.ReadAttributeValue())
        this.idField = reader.Value;


    reader.MoveToElement();
    bool goOn = true;
    while (goOn)
    {
        reader.Read();
        switch (reader.NodeType)
        {
            case XmlNodeType.Element:
                switch (reader.Name)
                {

                    case "div":
                        DivType newDivTypeItem = new DivType(reader);
                        this.itemsField.Add(newDivTypeItem);
                        this.itemsElementNameField.Add(ItemsChoiceType17.div);
                        break;
                    other cases...
                }
                break;
            case XmlNodeType.Text:
                this.textField.Add(reader.Value);
                break;
            case XmlNodeType.EndElement:
                goOn = false;
                break;
        }
    }

1 个答案:

答案 0 :(得分:2)

IsElementEmpty property你想要的是什么?你究竟是如何阅读你的文件的呢?