gpt4 book ai didi

java - 使用 Sax 解析器处理 XML 中的空标记,Java

转载 作者:数据小太阳 更新时间:2023-10-29 01:58:36 25 4
gpt4 key购买 nike

我正在使用 Sax 解析器来处理预先编写的 XML 文件....我无法更改 XML,因为它由另一个应用程序持有,但需要从中解析数据。 XML 文件包含一个标签 <错误文本/>没有错误发生时为空。结果,解析器采用标记关闭后的下一个字符“\n”。我试过了 结果.replaceAll("\n", "");和 结果.replaceAll("\n", "");

我如何让 SAX 识别这是一个空标签并将值返回为 ""?

最佳答案

你这样做。如果你有 xml 和 Java 源代码。

<ERROR_TEXT>easy</ERROR_TEXT><ERROR_TEXT/>

Java代码

private boolean isKeySet = false;
private String key = "";
@Override
public void characters(
char[] ch,
int start,
int length
) throws SAXException
{
if (!isKeySet) {
return;
}
isKeySet = false;
logger.debug("key : [" + key + "], value : [" + value + "]");
}
@Override
public void startElement(
String uri,
String localName,
String qName,
Attributes attrs
) throws SAXException
{
key = qName;
isKeySet = true;
}

@Override
public void endElement(
String uri,
String localName,
String qName
) throws SAXException
{
if (isKeySet) {
isKeySet = false;
logger.debug("key : [" + key + "](EMPTY!!!)");
}
}

结果日志:

key : [ERROR_TEXT], value : [easy]

key : [ERROR_TEXT](EMPTY!!!)

调用流程:startElement() -> characters() -> endElement() -> startElement() -> endElement() -> characters()

就是这样!结束

关于java - 使用 Sax 解析器处理 XML 中的空标记,Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10813185/

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