gpt4 book ai didi

java - 使用 SAX 解析具有未知数量递归的 XML 结构

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:27:18 24 4
gpt4 key购买 nike

我必须使用 SAX 解析器在 JAVA 中解析 XML 结构。

问题在于该结构是递归的,递归次数未指定。这仍然不是什么大问题,问题是我无法利用 XML 命名空间功能,并且每个递归级别上的标记都是相同的。

这是结构的一个例子。

<?xml version="1.0" encoding="UTF-8"?>
<RootTag>
<!-- LOADS OF OTHER TAGS -->
<Tags attribute="value">
<Tag attribute="value">
<SomeOtherTag></SomeOtherTag>
<Tags attribute="value">
<Tag attribute="value">
<SomeOtherTag></SomeOtherTag>
<Tags attribute="value">
<!-- MORE OF THE SAME STRUCTURE -->
</Tags>
</Tag>
</Tags>
</Tag>
</Tags>
<!-- LOADS OF OTHER TAGS -->
</RootTag>

如您所见,有一个递归,最好是未定义数量的递归。现在我的问题是如何为每个递归提取所有数据并将其保存在 HashMap 中。例如。

我可以定义一个 ContentHandler对于 Tags 的发生并让它提取 HashMap 中的内容然后把它放回 master HashMap在主要内容处理程序中定义,但我不确定是否要这样做。

如何在不使用命名空间的情况下提取和保存递归 XML 结构的内容?

最佳答案

查看 this set of Javaworld articles on using SAX .它演示了一种使用 SAX 解析递归 XML 结构的简单方法。它创建一个状态机,为每个元素显示它可以包含哪些元素。当您的 contentHandler 遍历 xml 时,它会保留一个堆栈来显示它当前所在的元素。

关于java - 使用 SAX 解析具有未知数量递归的 XML 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3822659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com