我没有指定数量的嵌套类别,其中包含以下项目:
<categories>
<category>abc
<category>cde
<item>someid</item>
<item>someid</item>
<item>someid</item>
<item>someid</item>
</category>
</category>
<category>xyz
<category>zwd
<category>hgw
<item>someid</item>
...
结果应该是嵌套最深类别(cde或hgw)中的项目列表。棘手的是,可以有两个以上级别的类别嵌套,我想为子类别保存每个父类别。
我已经用jackson xmlmapper和objectmapper进行了一些xml解析,但是这个用例似乎遥不可及。所以我用javaxmlparser尝试了一下,但放弃了,因为代码看起来很糟糕,很难阅读。
你知道如何以更优雅的方式解决这个问题吗?
1条答案
按热度按时间bakd9h0s1#
如果任务是从xml中快速提取一些值,那么我将使用jsoup。jsoup实际上是一个html解析器,但也能够解析xml。我不确定jsoup是否也可以验证xml模式并处理名称空间和。。。这在其他解析器中是可能的。但对我来说,读懂一些jsoup值就足够了。如果您想看看jsoup食谱或选择器语法
Maven:
使用jsoup,您的代码可能看起来像:
}
输出: