c# - 如何使用xmlreader读取这个xml

标签 c# xml xmlreader

我的 xml 部分是这样的:

<Note>
<SpecialText att1="" />
</Note>

或者

<Note>
This is a note.
</Note>

我需要的是使用 XmlReader 读取 xml,但我不确定如何确定 innerXml 是另一个 xmlelement 还是只是文本。

我这样做:

while (reader.Read())
{
    if (reader.NodeType == XmlNodeType.Element)
    {
        switch (reader.LocalName.ToLower())
        {
            case MMLElement.SpecialText:
            //// read related attributes
            break;
        }
   }
}

但是如果Note下面的东西只是文字,我怎么看内容呢。 如果我使用 reader.ReadInnerXml,它会读取所有内容,所以我没有机会查看它是 SpecialText XmlElement 还是只是文本?

非常感谢

最佳答案

现在这听起来可能有点居高临下,但我认为通过挖掘引用资料可以很容易地回答这个问题。再一次,我可能不完全理解你的问题。如果以下答案不是您要找的,请发布更多详细信息,我很乐意提供帮助。

要确定内容是否只是文本,只需检查它,然后随心所欲地处理它:

while (reader.Read())             
    {             
    if (reader.NodeType == XmlNodeType.Element)             
    {             
        switch (reader.LocalName.ToLower())             
        {             
            case MMLElement.SpecialText:             
            //// read related attributes             
            break;             
        }             
    }             

    else if (reader.NodeType == XmlNodeType.Text) 
    { 
      string thisIsjustText = reader.value;
    }
    //whatever comes next
}

关于c# - 如何使用xmlreader读取这个xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9381720/

相关文章:

c# - 为什么 XML 序列化程序在使用 namespace 的对象反序列化时返回 null?

xml - 使用 Go 解析巨大的 XML 文件

c# - 如何在 C# 中从选定的 XML 节点获取所有属性名称

c# - XmlReader:不读取同级子元素

C#让电脑进入休眠或 hibernate 状态

java - 使用 JAXB 从 XML 文件中具有多个组的 XML 字符串创建对象

c# - 等待多个独立任务的最佳方法/实践是什么?

c# - 为什么我的 XmlReader.GetAttribute() 没有返回值?

c# - 这是动态的错误吗?

c# - 无法加载文件或程序集 'Oracle.DataAccess, Version=4.112.4.0, Culture=neutral, PublicKeyToken=89b483f429c47342'