JMeter XML 结果文件解析 - SAXParser

因JMeter XML结果文件可能会比较大,所以使用SAXParser解析,而不使用DOM。

SAXParser 是什么?

  • 它是 Java 提供的一个 SAX(Simple API for XML)解析器
  • SAX 是一种 事件驱动的 XML 解析方式,不像 DOM 那样一次性把整个 XML 载入内存。
  • 它适合处理大文件,性能好,但需要你自己写逻辑处理标签和内容。

入口:parse(inputSource, this)

这行代码会逐行读取 XML 文件内容,并根据遇到的 XML 标签,自动回调 startElement()endElement()characters() 等方法,从而实现解析。

参数含义
inputSource要解析的 XML 输入源(比如一个文件流)
this当前类本身是一个 DefaultHandler(即监听器),用于接收解析过程中发生的事件
方法名触发时机示例
startElement()每次遇到一个新标签开始时调用<sample> 出现时被调用
characters()在标签之间的文本内容出现时调用<label>登录</label> 中的“登录”会触发它
endElement()每次遇到一个标签结束时调用</sample> 出现时被调用

实际流程举例

假设你有如下 XML 内容:

<sample lb="登录" s="false">
    <responseData>响应内容</responseData>
</sample>

当你运行:

saxParser.parse(inputSource, this);

解析器会按以下顺序调用你的方法:

  • startElement("sample", attributes)
    • 读到 <sample lb="登录" s="false">,触发一次
  • startElement("responseData")
    • 读到 <responseData>
  • characters("响应内容")
    • 读到标签之间的文本内容
  • endElement("responseData")
    • 读到 </responseData>
  • endElement("sample")
    • 读到 </sample>

这样,你就知道当前正在处理哪个标签,里面有什么内容。

小贴士

  • 如果你希望只提取某些特定标签的内容,可以在 startElement() 中记录当前标签名,在 characters() 中判断是否是你关注的标签。
  • SAX 是单向的、只读的,不能修改 XML 内容。
  • 如果你需要更直观地操作 XML 结构,可以考虑使用 DOM 或 JAXB。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值