使用SAX将XML解析为不同的格式

时间:2013-12-03 19:16:35

标签: java xml parsing sax

将XML文件解析为其他格式时遇到了很大的问题。 我正在尝试获取此链接中所述的所有相关数据:http://www.mkyong.com/java/how-to-read-xml-file-in-java-sax-parser/ (之前我搜索过stackoverflow并找到了此链接)

我使用接口XMLReader进行解析,使用XML Serializer进行输出。

我只需要将带有DTD的XML转换为另一个具有不同DTD的XML。不同之处在于,大多数子项不是源XML中的元素,而是目标XML中的属性。没有新元素,只有不同的安排。

有人知道如何使用SAX解析器处理问题吗?

1 个答案:

答案 0 :(得分:2)

您可以使用XMLFilters。有关说明和示例,请参阅Elliotte Rusty Harold's book

  

过滤器的基本思想是XMLReader,而不是接收   直接来自文件,套接字或其他源的XML文本接收   已经从另一个XMLReader解析了事件。它可以改变这些   事件通过之前传递给客户端应用程序之前的事件   ContentHandler的常用方法和其他回调接口。对于   例如,它可以为每个元素添加唯一的ID属性或删除   输入流中SVG命名空间中的所有元素。

BTW mkyong教程掩盖了角色方法的工作原理,当他们发现元素数据被截断时,往往会咬住很多人。 Oracle网站上有a better tutorial