gpt4 book ai didi

java - 使用 VTD 从元素获取行号

转载 作者:太空宇宙 更新时间:2023-11-04 11:24:41 26 4
gpt4 key购买 nike

我决定使用 VTD-Xml 来解析一个非常大的文件。它工作得很好,但在解析过程中,可以进行验证检查,必须使用已验证字段(行和列)的位置进行记录。我找不到任何方法来使用 VTD 至少获取元素的行号。而且我无法访问 VTD 的源代码来检查 VTDGen 的实现情况。

有人可以帮助我吗,或者提供示例代码,或者至少解释一下如何获取行号?在解析过程中我可以随时访问 VTDNav 和 Autopilot。

非常感谢您提前提供的帮助。

最佳答案

这是 VTDGen 中的一个小程序,用于执行行号报告...希望可以帮助您查找行号。请注意,os 是文档内的偏移量。

private String formatLineNumber(int os) {
int so = docOffset;
int lineNumber = 0;
int lineOffset = 0;

if (encoding < FORMAT_UTF_16BE) {
while (so <= os-1) {
if (XMLDoc[so] == '\n') {
lineNumber++;
lineOffset = so;
}
//lineOffset++;
so++;
}
lineOffset = os - lineOffset;
} else if (encoding == FORMAT_UTF_16BE) {
while (so <= os-2) {
if (XMLDoc[so + 1] == '\n' && XMLDoc[so] == 0) {
lineNumber++;
lineOffset = so;
}
so += 2;
}
lineOffset = (os - lineOffset) >> 1;
} else {
while (so <= os-2) {
if (XMLDoc[so] == '\n' && XMLDoc[so + 1] == 0) {
lineNumber++;
lineOffset = so;
}
so += 2;
}
lineOffset = (os - lineOffset) >> 1;
}
return "\nLine Number: " + (lineNumber+1) + " Offset: " + (lineOffset-1);
}

关于java - 使用 VTD 从元素获取行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44501913/

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