我需要你对特定代码的帮助。
我在jdom中有一个document
个对象。我也有一个element
对象的根。现在我想根据属性的值获取特定元素。但我想避免的是过滤完整的孩子列表,只是为了获得一个元素。那么是否有某种方式来过滤文档的价值。
让我们说我的属性值是' 123'
现在我想要的元素是' id'价值是' 123'
这样做的最佳方式是什么?
亲切的问候。
答案 0 :(得分:3)
我会使用XPath。使用以下表达式://element[@attribute='value']
答案 1 :(得分:2)
如果我遇到这个问题,我会用两种方法解决:
1)如果我只需要搜索元素一次以找到具有特定属性值的元素,我会做一个简单的搜索。 JDOM的优点(和缺点)是它将整个文档放在内存中,因此即使有很多元素,搜索元素也非常快。即使你使用XPath(我承认对它不熟悉,但发现之前的答案很有启发性),他们可能会做同样的事情,所以这个解决方案可能效率不高。通常,使用预构建的解决方案可以使您不必编写代码(尽管在这种情况下,您自己的代码会非常小),但通常不会更高效且效率更低,因为您使用的是通用解决方案。并非根据您的需求量身定制。
2)如果我需要进行多次搜索,那么我将构建一个HashMap,其中键是属性值。
如果您认为这些解决方案中的任何一个具有优点,但有一些其他问题或想要一些示例代码,请随时给我发电子邮件以获取更多信息。