gpt4 book ai didi

java - 如何在使用 SAX parcer 解析给定的 xml 文件时存储每一行

转载 作者:行者123 更新时间:2023-12-01 13:51:07 24 4
gpt4 key购买 nike

我期待在使用 Java 中的 SAX 解析器解析 XML 文件时存储每一行​​以验证特定条件。

问题:当我使用解析器的 Characters(...) 方法将字符 [] 转换为新字符串时,我无法正确获取行文本。

预期:需要在字符串变量中存储一行 XML 文件。

代码:

public void characters(char[] arg0, int arg1, int arg2) throws SAXException {
if (text) {
String str = new String(arg0,arg1,arg2);
System.out.println(str.trim());
}}

最佳答案

人们在使用 SAX 时犯的第一个错误是他们没有意识到 XML 解析器可以自由地在任何它喜欢的地方分解文本节点,并对字符()回调进行多次调用。您需要累积这些值,直到文本节点的末尾,由下一个非字符事件标记,例如对 startElement 或 endElement 的调用。

您谈论的是文本的“行”,但不要指望 XML 解析器一次跨行传递文本。 (某些解析器可能:规范允许但不要求它。)

关于java - 如何在使用 SAX parcer 解析给定的 xml 文件时存储每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19945586/

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