Oct*_*ean 6 java xml recursion parsing sax
我必须使用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>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的那样,有一个递归,更好的是一个未定义的递归数.现在我的问题是如何为每次递归提取所有数据并将其保存在HashMap
例如中.
我可以定义一个ContentHandler
for的出现Tags
并让它在a中提取内容HashMap
并将其放回主内容处理程序中定义的master HashMap
中,但我不确定这样做是否热.
如何在不使用命名空间的情况下提取和保存递归XML结构的内容?
查看这组有关使用 SAX 的 Javaworld 文章。它演示了一种使用 SAX 解析递归 XML 结构的简单方法。它创建一个状态机,显示每个元素可以包含哪些元素。当您的 contentHandler 遍历 xml 时,它会保留一个堆栈,显示它当前所在的元素。