powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Исправить XML
7 сообщений из 7, страница 1 из 1
Исправить XML
    #36542905
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как с помощью регулярных выражений исправить кривой XML:

есть:
Код: plaintext
1.
2.
3.
4.
5.
<root>
   <element1 value=""></element1>
   <element2 value="""></element2>
   <element3 value="aa bb cc"ee ff " dd "></element3>
   <element4 value="hello world"></elemnt4>
</root>

вместо " внутри аттрибутов должны быть помешены &quoot;

Код: plaintext
1.
2.
3.
4.
5.
<root>
   <element1 value=""></element1>
   <element2 value="&quoot;"></element2>
   <element3 value="aa bb cc&quoot;ee ff &quoot; dd "></element3>
   <element4 value="hello world"></elemnt4>
</root>
...
Рейтинг: 0 / 0
Исправить XML
    #36543658
kinaram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не проще при генерации этого XML сразу эскейпить

«если вы решаете свою проблему с помощью регулярных выражений — считайте, что у вас уже две проблемы» (с)
...
Рейтинг: 0 / 0
Исправить XML
    #36543832
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kinaram,

вместо того, чтоб ответить на вопрос Вы задаёте свой. Отвечу тоже вопросом:
А Вам не пришло в голову, что мне нужно работать с XML, который написан совершенно другими людьми?
...
Рейтинг: 0 / 0
Исправить XML
    #36544385
kinaram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда все сложнее.
Бить надо за передачу невалидного XML.
...
Рейтинг: 0 / 0
Исправить XML
    #36546777
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kinaramНу тогда все сложнее.
Бить надо за передачу невалидного XML.
Бить надо за трёп не к месту.
Если Вы не способны решить предложеную задачу то сидите тихо, не засоряйте форум.
...
Рейтинг: 0 / 0
Исправить XML
    #36548270
kinaram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не засоряю форум, а высказываю мнение, что лучше не делать заплатку в одном месте, а сделать правильно в другом.

Что пришло в голову:

package com.test;

public class Encode {

public static final String SOURCE_XML = new StringBuffer().append("<root>\n")
.append("\t<element1 value=\"\"></element1>\n")
.append("\t<element2 value=\"\"\"></element2>\n")
.append("\t<element3 value=\"aa bb cc\"ee ff \" dd \"></element3>\n")
.append("\t<element4 value=\"hello world\"></element4>\n")
.append("</root>\n").toString();

public static void main(String[] args) {
System.out.println("Source xml: ");
System.out.println(SOURCE_XML);

String result = SOURCE_XML.replaceAll("\"", """);
result = result.replaceAll("="", "=\"");
result = result.replaceAll("">", "\">");

System.out.println(result);
}
}


Если не подойдет, попробую помочь еще.
...
Рейтинг: 0 / 0
Исправить XML
    #36551086
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kinaram,

Спасибо, к сожалению в текущем контексте предпочтительно решение с регулярным выражением. Из примера видно, что внутри аттрибута value="" может быть одна или несколько ковычек, перемежающихся с текстом.

Речь не идет о разборе XML, а о корректировке нескольких ошибок в уже имеющемся XML-
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Исправить XML
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]