按名称仅获取 XML 直接子元素
我的问题是:当有其他元素与父元素的“孙子”同名时,如何直接在特定的父元素下获取元素。
我正在使用Java DOM库来解析XML元素,但我遇到了麻烦。以下是我正在使用的xml的一些(一小部分):
<notifications>
<notification>
<groups>
<group name="zip-group.zip" zip="true">
<file location="C:\valid\directory\" />
<file location="C:\another\valid\file.doc" />
<file location="C:\valid\file\here.txt" />
</group>
</groups>
<file location="C:\valid\file.txt" />
<file location="C:\valid\file.xml" />
<file location="C:\valid\file.doc" />
</notification>
</notifications>
如您所见,有两个位置可以放置元素。成组或组外。我真的希望它以这种方式构建,因为它更加用户友好。<file>
现在,每当我调用它时,它都会给我所有元素,包括元素下的元素。我以不同的方式处理这些类型的文件,因此不需要此功能。notificationElement.getElementsByTagName("file");
<file>
<group>
我想到了两种解决方案:
- 获取文件元素的父元素并相应地处理它(取决于它是 还是 。
<notification>
<group>
- 重命名第二个元素以避免混淆。
<file>
这两种解决方案都不如仅仅让事物保持原样,只得到作为元素直接子元素的元素。<file>
<notification>
我对IMPO关于“最佳”方法的评论和答案持开放态度,但我对DOM解决方案非常感兴趣,因为这是本项目其余部分正在使用的。谢谢。