gpt4 book ai didi

java - 解析数据的 SAXParser 问题

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

<message priority="info">PARAMETRI:</message>
<message priority="info">vrednost: 2.0</message>
<message priority="info">rank: 0.75</message>

<message priority="info">
objekt: irc.kis.model.pomozniRazredi.CasovniInterval.CasovniInterval(Date, Date)
</message>
<message priority="info">iid_tipa: 3</message>
<message priority="info">iid_metrike: 14</message>
<message priority="info">iid_izracuna: 140</message>
<message priority="info">done in 205776 ms</message>
<message priority="info">---------</message>
<message priority="info">Indeksi kakovosti</message>
<message priority="info">QI01: 3.9249</message>
<message priority="info">QI02: 4.0335</message>
<message priority="info">QI03: 4.0966</message>
<message priority="info">QI04: 4.3823</message>
<message priority="info">---------</message>
<message priority="info">QI05: 3.9401</message>
<message priority="info">QI06: 4.2479</message>
<message priority="info">QI07: 4.4984</message>
<message priority="info">QI08: 4.3534</message>
<message priority="info">QI09: 3.8455</message>
<message priority="info">QI10: 4.0195</message>
<message priority="info">QI11: 4.6222</message>

这是我的 xml 日志。我可以用 java SAXParser 出去吗

Indeksi kakovosti
QI01: 3.9249
QI02: 4.0335
QI03: 4.0966
QI04: 4.3823

介于 ---- 之间的任何内容

如果是怎么办?

最佳答案

是的,您可以这样做(假设您的 xml 格式正确)。您必须创建一个 ContentHandler,并使用一个计数器实例变量来告诉您到目前为止找到了多少个 ---------- 定界符。

不要使用 characters() 来执行此操作,因为 characters() 可以被调用多次。而是使用 characters() 缓冲读取的文本,使用 endElement() 读取最终文本并测试和递增计数器。

所以 ContentHandler 看起来像:

DefaultHandler hander = new DefaultHander() {
private String marker = "---------";
private int markerCount = 0;

private java.io.CharArrayWriter buffer = new java.io.CharArrayWriter();

public void characters(char ch[], int start, int length) {
buffer.append(ch, start, length);
}

public void endElement( String namespaceURI, String localName, String qName ) {
String elementText = buffer.toString();
if (elementText.startsWith(marker) {
markerCount += 1;
}
else if (markerCount == 1) {
System.out.println(elementText);
}
buffer.reset();
}
};

关于java - 解析数据的 SAXParser 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3871553/

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