gpt4 book ai didi

java - 具有多个父节点的 DocumentBuilderFactory

转载 作者:太空宇宙 更新时间:2023-11-04 08:07:18 25 4
gpt4 key购买 nike

我正在用 Java 开发一个简单的 XML 解析器。我已经成功地将 DocumentBuilderFactory 与许多源一起使用,但我的新源之一是单个节点的集合。

file.xml 如下所示:

<XML Version....>
<!DOCTYPE...>
<main_document_node>
.....others....
</main_document_node>
<XML Version....>
<!DOCTYPE...>
<main_document_node>
.....others....
</main_document_node>

我一直在使用这样的命令:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
Document d = dbf.newDocumentBuilder().parse(/path/file.xml);

但这似乎不适用于多个父节点。有没有比制作一个向其中写入 main_document_node 的临时工作文件更简单的方法?该伪代码将是

new Writer temp.xml
new Reader file.xml
while not at the end of file.xml
read/write first main_document_node to temp
parse temp.xml

我认为应该有一种方法可以使用 DocumentBuilderFactory 的 inputsource/stream 选项,但我不确定如何去做。

谢谢!

最佳答案

您可以通过从计算机字符串片段(对于一个节点)创建一个输入流来跳过写入文件步骤:

new Reader file.xml
while not at the end of file.xml {
String node = read_first_main_document_node();
InputStream is = new ByteArrayInputStream( node.getBytes( charset ) );
parse(is);
}

关于java - 具有多个父节点的 DocumentBuilderFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11868324/

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