【问题标题】:Identify empty XML element in Java识别 Java 中的空 XML 元素
【发布时间】:2021-05-27 14:46:25
【问题描述】:

我正在使用 XMLEvent 来识别我的 Java 应用程序中的每个 XML 元素。 目前,我被困在 XML 元素具有空值的地方。 示例:

<Name></Name>

我的意图是将此空元素视为空字符串。

但这可以实现吗?我还没有找到让 Java 识别这些空元素的方法。

【问题讨论】:

  • 如果你正在实现一个 XMLEventReader,你能不能只调用 getElementText() 并测试返回的字符串是否为空?即docs.oracle.com/javase/8/docs/api/javax/xml/stream/…
  • @mkane getElementText() 即使元素包含子元素、cmets 或处理指令,仍将为空,因此是一个误导性答案。

标签: java xml xml-parsing


【解决方案1】:

我不确定您使用的是 SAX 还是 DOM 解析器。不过……

在遍历 DOM 树时,您可以检查一个元素是否有子节点(并注意子节点可以不仅仅是子元素)。如果没有,则为空(仍然可以在开始标记中包含属性)。

如果您使用 SAX,请在找到开始元素标记时创建一个检查点。 找到停止元素后,只需检查是否找到与内容相关的任何元素 - 如果没有,则该元素为空。

所以识别空元素并不太难。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    • 2012-02-24
    • 2017-10-10
    • 1970-01-01
    • 2019-07-20
    相关资源
    最近更新 更多