【问题标题】:How to test if a XML element has a text element inside?如何测试 XML 元素内部是否有文本元素?
【发布时间】:2011-04-20 13:26:32
【问题描述】:

我想知道如何测试休闲情况:

<foo>
    <bla1>xxx</bla1>
    <bla2>yyy</bla2>
    <bla3>zzz</bla3>
</foo>

在 while(reader.Read()) 中,当我在 foo 和 bla1、bla2、bla3 中时,我放入 XmlNodeType.Element ......当在 xxx、yyy、zzz 中放入 .TextElement .但是我可以测试 bla 的内部是否有文本值吗?

非常感谢

佩德罗·杜索

【问题讨论】:

    标签: c# xml xmlnode


    【解决方案1】:

    不,只要您使用的是 XmlReader,您就不能

    XmlReader 类通过 XML 层次结构实现只进游标。因此,您只能对在当前位置找到的 XML 节点进行操作。

    在您的情况下,这意味着如果不先遍历它们,您将无法检查“bla”节点的内容。

    【讨论】:

    • 你说得对,其实我用的是XmlTextReader,不好意思之前没写过。
    • XmlTextReader 的原理相同。只进游标只允许您检查当前正在访问的节点。如果要查询 XML 层次结构,则必须将其加载到内存中的 DOM 结构中,例如 XmlDocument 类或 XDocument 类。
    • 是的...我明白了。我将不得不考虑一下。我们应该处理一个 700MB 的 XML 文件,所以我无法将它加载到内存中......无论如何,谢谢!
    【解决方案2】:

    如果您使用的是 XmlTextReader,则可以使用属性 IsEmptyElement

    【讨论】:

    • 这实际上不起作用...... IsEmptyElement 仅适用于 ,当它变为真时。还是谢谢...
    【解决方案3】:

    reader.HasValue 有什么问题吗? (或 string.IsNullOrEmpty(reader.Value))?

    【讨论】:

      猜你喜欢
      • 2022-10-15
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 2013-11-16
      • 2021-03-04
      • 1970-01-01
      • 2012-02-24
      相关资源
      最近更新 更多