为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用正则表达式从 XML 中提取标签名称

如何使用正则表达式从 XML 中提取标签名称

繁星淼淼 2023-09-13 18:12:05
我有一个问题正在尝试解决。我有 2 种格式的 xml 请求<?xml version="1.0" encoding="UTF-8"?><Request xmlns="urn:x-facebook-com:DEF.plan.services.test">  <OneRequest>    <page_number>1</page_number>    <page_size>25</page_size>    <origin>TEST</origin>    <item_name/>  </OneRequest></Request><?xml version="1.0" encoding="UTF-8"?><Request xmlns="urn:x-google-com:ABC.plan.services.plans"> <SecondRequest/></Request>在这两种情况下,我都想提取 后的第一个标签名称<Request>。即OneRequest和SecondRequest(这些将是动态的,并且有 100 个)。我尝试使用正则表达式,但没有得到我想要的。任何意见或建议将不胜感激。也确实看到了有关 xml 解析器的帖子,但这似乎有点过分了,因为我基本上想要的只是之后的第一个标签<Request>我的尝试String[] requestTags = requestBody.split("</");String requestName = requestTags[requestTags.length-2].replaceAll("[^a-zA-Z0-9]",不是最好的,它适用于第一种类型,但在第二种类型中完全混乱
查看完整描述

1 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

您基本上只需要\s正则表达式中的选项即可实现此目的:

使用此正则表达式,并从组中获取值tagname

<Request .*?>\s*<(?<tagname>.*?)>

请参阅 regex101 工作示例


查看完整回答
反对 回复 2023-09-13
  • 1 回答
  • 0 关注
  • 69 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信