gpt4 book ai didi

java - 如何从使用 Dom 解析转换为使用 SAX 解析

转载 作者:行者123 更新时间:2023-11-30 07:39:04 25 4
gpt4 key购买 nike

我正在使用 DOM 将 XML 文档解析为我自己的结构,但在另一个 question 中我被建议使用 SAX,我将如何转换以下内容:

public static DomTree<String> createTreeInstance(String path) 
throws ParserConfigurationException, SAXException, IOException {
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder db = docBuilderFactory.newDocumentBuilder();
File f = new File(path);
Document doc = db.parse(f);
Node node = doc.getDocumentElement();
DomTree<String> tree = new DomTree<String>(node);
return tree;
}

这是我的 DomTree 构造函数:

    /**
* Recursively builds a tree structure from a DOM object.
* @param root
*/
public DomTree(Node root){
node = root;
NodeList children = root.getChildNodes();
DomTree<String> child = null;
for(int i = 0; i < children.getLength(); i++){
child = new DomTree<String>(children.item(i));
if (children.item(i).getNodeType() != Node.TEXT_NODE){
super.children.add(child);
}
}
}

最佳答案

针对 SAX 的编程与针对 DOM 的编程截然不同 - SAX 是推模型,DOM 是拉模型。将您的代码从一个代码转换为另一个代码是一项非常重要的任务。

鉴于您的情况,我建议使用 STAX 而不是 SAX。 STAX 是一种拉式模型解析器 API,但具有许多与 SAX 方法相同的优点(例如内存使用和性能)。

STAX 随 Java 6 一起提供,但如果您想将它与 Java 5 一起使用,您需要下载一个 STAX 处理器(例如 Woodstox )。 Woodstox 网站上有大量示例供您查看。

关于java - 如何从使用 Dom 解析转换为使用 SAX 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1137455/

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