如果 xml 中缺少标签,为什么会显示文本?

Why is the text displayed if the tag is missing in the xml?

您需要阅读 xml 并仅显示那些包含 INNYL 或 INNFL 标签的值。但是如果我在“文档”中没有它们或者它是空的,那么输出是:INNYL INNFL 这是为什么?在这种情况下我不需要显示任何内容,因为没有值(没有标签或它是空的)。

 def person = new XmlSlurper().parse(new File("C:\test\test.xml"))

        person.Document.findAll { p ->
            p.Org.@INNYL != null ||
            p.IPV.@INNFL != null
        }.each { p ->
            println "INNYL ${p.Org.@INNYL} INNFL ${p.IPV.@INNFL}"
        }

我没有附加 XML,因为您可以创建任何附件。

因为@INNYL returns一个空属性,不是null...你可以通过获取文本来检查它,并检查它们是否为空

    person.Document.findAll { p ->
        p.Org.@INNYL.text() ||
        p.IPV.@INNFL.text()
    }.each { p ->
        println "INNYL ${p.Org.@INNYL} INNFL ${p.IPV.@INNFL}"
    }

或者您可以使用 isEmpty() ,即:!p.Org.@INNYL.isEmpty()