java - 如何在java中不解析xml获取特定值

标签 java regex string performance xml-parsing

我有以下 xml 文件:

<parsedResponseMap>
    <entry>
        <key>SequenceID</key>
        <value>3258</value>
    </entry>
    <entry>
        <key>messageID</key>
        <value>11</value>
    </entry>
    <entry>
        <key>ConnectionID</key>
        <value>1</value>
    </entry>
</parsedResponseMap>

在上面的 XML 中,我只需要 11(messageID 键的值)。我有性能问题。如果我解析 xml,那么我的性能就会下降,我只需要 xml 中的一个值。所以我可以通过任何其他方式获得更好性能的值(value)。

最佳答案

public class ExtractValueFromXml {
    public static void main(String[] args) throws IOException {

        String lineBefore = "<key>messageID</key>";
        Pattern pattern = Pattern.compile("<value>(.+?)</value>");
        String numberFound = null;

        try (BufferedReader br = new BufferedReader(new FileReader("file.xml"))) {
            String line = null;
            while ((line = br.readLine()) != null) {
                if (line.matches(lineBefore)) {
                    Matcher matcher = pattern.matcher(br.readLine());
                    if (matcher.find()) {
                        numberFound = matcher.group(1);
                        break;
                    }
                }
            }

            System.out.println(numberFound);

        } catch (Exception e) {
        }
    }
}

关于java - 如何在java中不解析xml获取特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33295579/

相关文章:

Java正则表达式获取零件号

C++:Chr() 和 unichr() 等效?

java - 为 JanusGraph 提供属性值时,只有前 20 个字符作为值存储在使用 Java 的属性中

java - 如何从日期获取日历

java - Alfresco 社区版中的扫描功能?

java - 如何知道从哪个jsp页面调用servlet

java - 是否有干净的方法将上下文数据传递给@Asynchronous ejb 调用?

java - 正则表达式匹配相同数字的模式

python - 匹配字符串中不是特定字符的连续片段的部分

string - 有没有一种Python式的方法可以在现有字符串的随机位置插入空格字符?