gpt4 book ai didi

java - SAXParser 实现正在跳过实体

转载 作者:行者123 更新时间:2023-12-01 05:46:23 26 4
gpt4 key购买 nike

我有一个 org.xml.sax.helpers.DefaultHandler 的实现,它工作正常,除非它出现这样的情况:

<NAME>Ji&#345;&#237; B&#225;rta</NAME>

字符方法被重写为:


@Override
public void characters(char[] ch, int start, int length) throws SAXException {
if (currentElement) {
currentValue = new String(ch, start, length);
currentElement = false;
}
}

但是到达该方法的 char 数组只有“Ji”,跳过字符串的其余部分。我有另一种方法将这些实体转换为 UTF-8,但我从未得到它们,所以我无法转换任何内容。

最佳答案

请注意,解析器可能无法在一次调用中传递所有字符数据。为了安全起见,您必须从可能的多个character()调用构建字符串,并用startElement()/endElement()括起来。

顺便说一句,为什么要将“实体”转换为 UTF-8?它们已转换为 UTF-16 字符。

关于java - SAXParser 实现正在跳过实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5830157/

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