将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解析器处理问题吗?
答案 0 :(得分:2)
您可以使用XMLFilters。有关说明和示例,请参阅Elliotte Rusty Harold's book:
过滤器的基本思想是XMLReader,而不是接收 直接来自文件,套接字或其他源的XML文本接收 已经从另一个XMLReader解析了事件。它可以改变这些 事件通过之前传递给客户端应用程序之前的事件 ContentHandler的常用方法和其他回调接口。对于 例如,它可以为每个元素添加唯一的ID属性或删除 输入流中SVG命名空间中的所有元素。
BTW mkyong教程掩盖了角色方法的工作原理,当他们发现元素数据被截断时,往往会咬住很多人。 Oracle网站上有a better tutorial。