Мы получаем XML-строку, в которой нам нужно дезинфицировать только одно значение атрибута перед его развязыванием. Проблема в том, что xml очень слабо напечатан и нет гарантии, что атрибуты будут в каком-то определенном порядке или даже присутствовать.Поиск шаблона регулярных выражений для дезинфекции частей XML-строки
<message>
<set name=".." value="garbled string" type="name" />
<set age=".." value="32" />
<set something=".." value="value=\"\"\"\"" />
..
</message>
В этой строке мне нужно вызвать шаблон таким образом, что я только принять строку для значения атрибута XML-, в закодировать любые специальные символы (StringEscapeUtils.escapeXml()) и заменить его значение. Даже если значение содержит строку «значение» внутри, не должно вызывать несоответствия шаблона регулярного выражения.
Пожалуйста, помогите.
Применение регулярного выражения к XML (или аналогичные нерегулярные области проблем) является реприемником для катастрофы. Лучше использовать синтаксический анализатор XML. – Thomas
Спасибо @Thomas, но синтаксические анализаторы xml либо не сработают, либо пройдут синтаксический анализ переданной строки. Мне нужно сделать, чтобы избежать каких-либо специальных символов в атрибуте value, а затем проанализировать его. У вас есть пример, который я могу использовать, который показывает его без использования регулярных выражений? – Ashish
Если XML, который вы получаете, действительно так дерьмово, что вам трудно найти регулярное выражение, которое работает во всех случаях (предположим, что это 'имя =" значение = "и т. Д.). Поэтому, если XML недействителен и, следовательно, приводит к сбою синтаксических анализаторов, я сначала попытаюсь поговорить с отправителем. – Thomas