我的问题是:当存在与父元素的“孙子”同名的其他元素时,如何直接在特定父元素下获取元素。
我正在使用 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解决方案非常感兴趣,因为这是该项目的其余部分正在使用的。谢谢。