У меня есть строка xml, которую я получаю через вызов REST. Однако некоторые атрибуты имеют поврежденные значения. Например:Java - Удаление двойных кавычек в атрибутах XML
<property name="foo" value="Some corrupted String because of "something" like that"/>
Как я могу заменить двойные кавычки, либо не предшествует значение = или нет follown по /> с одиночной кавычки и получить правильную строку XML из этого поврежден один в Java 6?
EDIT:
Я попытался изменить это опережение/регулярное выражение, которое просмотр назад было использовано для VisualBasic. Но из-за несовместимости escape-символов, я думаю, я не мог создать его версию Java. Вот оно:
(?<=^[^""]*""(?>[^""]*""[^""]*"")*[^""]*)"(?! \s+ \w+=|\s* [/?]?" >)|(?<!\w+=)""(?=[^""]*""(?>[^""]*""[^""]*"")*[^""]*$)
Пожалуйста, поделитесь, что вы пробовали до сих пор. –
Ну, я попытался изменить это регулярное выражение lookahead/lookbehind, которое использовалось для VisualBasic. Но из-за несовместимости escape-символов, я думаю, я не мог создать его версию Java. Вот он: '(? <=^[^" "] *" "(?> [^" "] *" "[^" "] *" ") * [^" "] *)" (? ! \ s + \ w + = | \ s * [/?]? ">) | (? [^" "] *" "[^" "] *" ") * [^" "] * $)' – vahdet
Вам лучше с чем-то вроде ['\\ s + [\\ w: .-] + = \" ([^ \ " ] * | '] (HTTPS (:: \ "(\\ s + [\\ ш .-] + = \?!" \\ s * />) [^ \ "*) \] *?)": //regex101.com/r/cP7fD2/1), а затем просто замените двойные кавычки внутри каждой группы 1. Посмотрите на [это демо] (http://ideone.com/Rx2q4H). –