java - 停止 stax 解析器执行

标签 java xml-parsing stax

我正在寻找一种在获得标签内容后停止解析器的方法。我怎样才能做到这一点?另外我现在怎么知道我正在搜索的标签被点击了。

public class XmlParser {

  public String getValue(final String xml, final String tag) throws XMLStreamException {

    String tagContent = null;

    final XMLInputFactory factory = XMLInputFactory.newInstance();
    final XMLStreamReader reader = factory.createXMLStreamReader(new StringReader(xml));

    while (reader.hasNext()) {
      final int event = reader.next();
      switch (event) {
        case XMLStreamConstants.START_ELEMENT:
          break;
        case XMLStreamConstants.CHARACTERS:
          tagContent = reader.getText().trim();
          break;
        case XMLStreamConstants.END_ELEMENT:
          break;
      }
    }
    return tagContent;
  }
}

最佳答案

boolean finished = false;
while(!finished && reader.hasNext()) {
  final int event = reader.next();
  //set finished = true if you hit an event that means you want to stop parsing
}
//don't forget to close the reader and the I/O streams

关于java - 停止 stax 解析器执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41526898/

相关文章:

java - 具有泛型的模拟方法并在返回类型中扩展

java - IBM i (AS400) JVM - 是否可以定义 JVM 查找 .jar 文件的位置?

java - 在 Java 中将 JSON 转换为 XML

c# - Xunit 报告工具

安卓 : Ksoap2 org. xmlpull.v1.XmlPullParserException

Java - 抽象问题

java - 如何使用带有 Java Stream 实现 Stax 的 xpath 在 XML 中查找元素

java - StAX 和 DOM 使用 XMLEventReader 而不是 XMLStreamReader

java - 使用 STAX 解析器将 XML 解码为三个不同对象的列表

java - ActiveSync 客户端 Java 实现