我有一个以下格式的 xml 文件:
<Query>
<map>
<value name="val1">1</value>
<value name="val2">2</value>
</map>
</Query>
<Quest>
<map>
<value name="val1">6</value>
<value name="val2">8</value>
</map>
</Quest>
当我编写 SAX 解析器时,我会获取从开始到结束的所有值,但我需要编写一个条件,该条件将采用标签名称(例如 Query/Quest),并仅获取其特定的名称和值。
我不知道如何添加这个条件,一旦满足我的条件并且解析了我的对象,我就不需要解析其余的标签。
注意:我用 Java 编写。
最佳答案
- 在 startElement 中,根据给定名称检查元素名称。例如,如果您正在查找“Query”并且名称为“Query”,请将某些标志设置为 true。
- 在 startElement 中,如果元素名称为“value”且标志为 true,则将名称和值存储在映射中。
- 在 endElement 中,如果元素名称等于“Query”,则将标志设置为 false。或者,完全停止解析。
关于java - SAX 解析器出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3289253/