Как я могу извлечь имя тега из XML с помощью регулярных выражений - PullRequest
0 голосов
/ 01 октября 2019

У меня есть проблема, которую я пытаюсь решить. У меня есть xml-запросы в 2 форматах

<?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 Ответ

0 голосов
/ 01 октября 2019

В основном вам нужен только параметр \s от regex, чтобы достичь этого:

Используйте это регулярное выражение и получите значение из группы tagname:<Request .*?>\s*<(?<tagname>.*?)>

см. Рабочий пример regex101

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...