Java XML Parse - удалить первый тег - PullRequest
0 голосов
/ 04 июля 2019

Я хотел бы удалить несколько тегов из моей строки XML.Звучит просто, и я уверен, что это так, но у меня проблемы с удалением основного тега и сохранением внутри тегов SubTag.

Вот пример:

<Tag1 version = "">
    <SubTag1>
    </SubTag1>
    <SubTag2>
    </SubTag2>
</Tag1>

Я бынравится хранить только «SubTag2» и все, что в нем.

Какой лучший способ подойти к этому?

Я пытался использовать REGEX для удаления SubTag1, но я обнаружил, что это никогда не происходитхорошее решение в XML:

result = result.replaceAll("<SubTag1>[\\s\\S]*?</SubTag1>","");

Заранее спасибо.

1 Ответ

2 голосов
/ 04 июля 2019

Вы можете использовать JSoup (https://jsoup.org/) или другую библиотеку для анализа вашей строки. Затем вы можете получить доступ к дереву DOM и извлечь только часть с определенным тегом.

Это будет выглядеть так:

String xml = "<Tag1 version = \"\"><SubTag1></SubTag1><SubTag2></SubTag2></Tag1>";
Document doc = Jsoup.parse(xml, "", Parser.xmlParser());
Elements subTag2 = doc.getElementsByTag("SubTag2");

Если есть только один элемент с тегом «SubTag2», вы можете получить к нему доступ следующим образом:

subTag2.get(0);
...