Вы можете использовать это регулярное выражение, чтобы соответствовать строке, которую вы хотите удалить из вашего xml,
^\s+<\?xml\s+version="1.0".*\n
Здесь ^\s+
гарантирует, что первая строка не соответствует той, которую желательно сохранить встроки файла и остатка, начинающиеся с <?xml version="1.0"
, удаляются, поскольку остальные из них начинаются с некоторого пробела.
и заменяют его пустой строкой,
Demo
Проверьте этот код Java,
String s = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" + "<User>\n"
+ " <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" + " <User>\n"
+ " <objectId>c33edcd9-5c13-4ceb-a81a-0a8f44b813ed</objectId>\n" + " </User>\n"
+ " <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" + " <User>\n"
+ " <objectId>c33edcd9-5c13-4ceb-a81a-0a8f44b813ed</objectId>\n" + " </User>\n"
+ "</User>";
System.out.println("Before: " + s);
System.out.println("After: " + s.replaceAll("\\s+<\\?xml\\s+version=\"1.0\".*", ""));
Он печатает это там, где удаляет строки, которые вы хотели удалить,
Before: <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<User>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<User>
<objectId>c33edcd9-5c13-4ceb-a81a-0a8f44b813ed</objectId>
</User>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<User>
<objectId>c33edcd9-5c13-4ceb-a81a-0a8f44b813ed</objectId>
</User>
</User>
After: <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<User>
<User>
<objectId>c33edcd9-5c13-4ceb-a81a-0a8f44b813ed</objectId>
</User>
<User>
<objectId>c33edcd9-5c13-4ceb-a81a-0a8f44b813ed</objectId>
</User>
</User>
Используйте регулярное выражение из моего JavaПримеры кода, я немного изменил, чтобы настроить для Java и строки.