C# XML 解析 : how to differentiate between self-closing tag and other tags?

标签 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;
        }
    }

最佳答案

IsElementEmpty property你想要什么?您究竟是如何阅读您的文档,以至于出现这种情况?

关于C# XML 解析 : how to differentiate between self-closing tag and other tags?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18341563/

相关文章:

c# - 解析可以是单行或多行的 XML 文件

c# - 如何将此循环写成一行?

c# - 发送嵌入 html 的电子邮件时缺少图像样式

android - 如何在 Android 中以 XML 格式发送 SOAP 请求和解析 SOAP 响应?

javascript - 仅在 IE 中的 Iframe 中执行缓慢的 javascript

ios - 如何通过xml解析访问图像?

java - SOAP 响应配对

c# - 泛型与数组列表

C#——我们应该检查 lambda 中的传入参数吗?

c# - 无效的对象名称(即使存在)